根据其他数据帧的比较创建包含列的Pandas数据框

时间:2017-01-13 15:52:00

标签: python pandas dataframe

说我有数据帧:

df1:
a b
3 0
4 5
1 20

df2:
c d
2 7
5 3
0 9

我想用2列获得df3。每个都是这样计算的(伪代码):

if df1 > df2: df3 = 1
else: df3 = 0

df1中的所有列必须分别与df2中的列进行比较。

所以最后我想得到:

df3:
e f
1 0
0 1
1 1

我认为df3 = df1.gt(df2)会这样做,但事实并非如此。它给了我4列。而且我不想使用lambdas,因为我的真实数据有近500000行x100列。 感谢。

1 个答案:

答案 0 :(得分:1)

两个数据框中的列名不匹配,如果您只想比较这些值,可以使用.values访问numpy数组进行比较(假设这两个数据框有两个数据框)相同的尺寸,你想要一个明智的元素比较,无论维名称/索引如何):

pd.DataFrame(df1.values > df2.values, columns=list("ef")).astype(int)

enter image description here