两个熊猫数据帧的元素明智的最大比较

时间:2021-06-11 08:22:46

标签: python pandas dataframe

我有两个数据框 df1df2

df1 = 

    A1 B1 C1
0   1  2  0
1   4  2  1
2   2  1  5


df2 =

    A2 B2 C2
0   2  1  5
1   1  3  2
2   2  2  4
 

我希望创建第三个数据帧,它在两个数据帧的相应元素之间具有最大值。

df3 = max(df1, df2)

print(df3)

    A3 B3 C3
0   2  2  5
1   4  3  2
2   2  2  5

我如何实现这一目标?

谢谢!

2 个答案:

答案 0 :(得分:2)

我们可以在索引上使用 DataFrame.max

df2.columns = df1.columns
df3 = pd.concat([df1, df2]).max(level=0)
df3.columns = df3.columns.str.replace("\d", "3", regex=True)
   A3  B3  C3
0   2   2   5
1   4   3   2
2   2   2   5

答案 1 :(得分:1)

尝试通过 where() 方法和 rename() 方法:

out=df1.where(df1.values>df2.values,df2.values).rename(columns=lambda x:x[0]+'3')

通过 numpy 的 where()DataFrame() 方法:

out=pd.DataFrame(np.where(df1.values>df2.values,df1.values,df2.values),columns=['A3','B3','C3'])

out 的输出:

    A3  B3  C3
0   2   2   5
1   4   3   2
2   2   2   5