合并两个数据框,取两列的最大值

2024-04-27 02:39:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个格式相同的数据帧:

> df1
Day ItemId Quantity
  1      1        2
  1      2        3
  1      4        5

> df2
Day ItemId Quantity
  1      1        0
  1      2        0
  1      3        0
  1      4        0

我想合并df1和df2,如果df1和df2中都存在一行['Day','ItemId'],则取df1,最大 我试过这个命令:

df = pd.concat([df1, df2]).groupby(level=0).max(df1['Quantity'],df2['Quantity'])

Tags: 数据命令df格式levelmaxquantitypd
1条回答
网友
1楼 · 发布于 2024-04-27 02:39:07

列表和聚合中的两列都使用groupby

df = pd.concat([df1, df2]).groupby(['Day','ItemId'], as_index=False)['Quantity'].max()
print (df)
   Day  ItemId  Quantity
0    1       1         2
1    1       2         3
2    1       3         0
3    1       4         5

如果可能,多列:

df = (pd.concat([df1, df2])
        .sort_values(['Day','ItemId','Quantity'], ascending=[True, True, False])
        .drop_duplicates(['Day','ItemId']))
print (df)

   Day  ItemId  Quantity
0    1       1         2
1    1       2         3
2    1       3         0
2    1       4         5

相关问题 更多 >