python - pandas 中的数据框成对乘法?

标签 python pandas dataframe matrix-multiplication

如果我有这些数据

data = {'f1':['A','B','B','A'],'f2':['X','Y','Z','Z']}
df = pd.DataFrame(data)
feat_1 = pd.get_dummies(df['f1'])
feat_2 = pd.get_dummies(df['f2'])

在 pandas 中进行 feat_1 和 feat_2 之间的乘法运算的快捷方法是什么?

feat_1

   A  B
0  1  0
1  0  1
2  0  1
3  1  0

feat_2

   X  Y  Z
0  1  0  0
1  0  1  0
2  0  0  1
3  0  0  1

期望结果:feat_1 * feat_2

   AX  AY  AZ  BX  BY  BZ
0   1   0   0   0   0   0
1   0   0   0   0   1   0
2   0   0   0   0   0   1
3   0   0   1   0   0   0

最佳答案

通过在 get_dummies 之后使用 reindex

col=pd.MultiIndex.from_product([df.f1.unique(),df.f2.unique()]).map(''.join) 


df.apply(''.join,1).str.get_dummies().reindex(columns=col,fill_value=0)
Out[605]: 
   AX  AY  AZ  BX  BY  BZ
0   1   0   0   0   0   0
1   0   0   0   0   1   0
2   0   0   0   0   0   1
3   0   0   1   0   0   0

关于python - pandas 中的数据框成对乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51431327/

相关文章:

python - 如何将嵌套字典转换为 pandas DataFrame?

r - Cox比例风险模型

python - 单击时从 Django 模板调用对象的方法

python - 如何在 matplotlib 中使用 Font Awesome 符号作为标记

python-3.x - 如何修复 "module ' Pandas 在 python 中没有属性 'Int64Dtype'"错误?

python - 如何在单个Python数组中连接不同类型的特征?

python - 日期时间列表的平均时间

python - 检查一个 DataFrame 中的一行是否存在于另一个 DataFrame 中,仅基于特定的列

python - 如何只允许管理员执行命令

python - 使用nltk进行通用同义词和词性处理