我有两个不同的Python DataFrames(即大小为2 * 2),如下所示:
Mangoes Apples
Mangoes Apples
和
1 0
0 1
我打算生成第三个DataFrame,以便输出可以是:
Mangoes 0
0 Apples
显然,我不能将这两个数据帧相乘(我希望我能做到)。那么,这应该是最好的方法呢?这是可以通过连接完成的吗?或者我应该开始逐个项目为每个DataFrame迭代并将值存储到第三个DataFrame中。
答案 0 :(得分:1)
假设两个DF具有相同的列名和索引:
In [123]: d1[d2.eq(1)].combine_first(d2)
Out[123]:
0 1
0 Mangoes 0
1 0 Apples
来源DF:
D1:
In [124]: d1
Out[124]:
0 1
0 Mangoes Apples
1 Mangoes Apples
D2:
In [125]: d2
Out[125]:
0 1
0 1 0
1 0 1
答案 1 :(得分:0)
一种可能的方式如下:
print(df1)
输出:
0 1
0 Mangoes Apples
1 Mangoes Apples
其他dataframe
:
print(df2)
输出:
0 1
0 1 0
1 0 1
然后:
df_new = (df1*df2).replace('',0)
print(df_new)
输出:
0 1
0 Mangoes 0
1 0 Apples