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'])
解决方案
groupby
由 list 和 aggregate 中的两列使用max
:
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
推荐阅读
- python - 如何正确地将变量插入到python中的json键中
- javascript - GraphQL 无法为“非空字段”返回“空”
- r - R - 获取由不同数据框中的值定义的一组列中的最高/最低值
- vb.net - 如何使用 VB.NET 在 Access Query 中保存、编辑和创建新记录
- sql - 运行存储过程后如何保留临时表?
- javascript - Angular - 如何将路由功能传递给子组件
- reactjs - useEffect 的一致返回
- python - pyenv .zshrc 在新设置上产生错误
- shopify - 结帐后存储客户付款信息
- python - 根据列表中的项目创建带有键的 Python 字典