pandas - 如何使用熊猫在同一组中加入两个多对多的数据框?
问题描述
我想将两个数据框合并为一个,但是键中有一些重复的值,即Item。它不能通过使用“交叉连接”来实现,因为它只在同一组中使用“交叉连接”。有人可以分享解决问题的想法吗?谢谢
例如:
数据框1
ID Item Price
1 apple 5
1 banana 3
1 lemon 2
2 apple 7
2 banana 4
2 lemon 4
数据框2
Item state
apple TX
apple CA
apple NJ
banana CA
lemon NY
lemon PA
预期结果:
ID Item Price State
1 apple 5 TX
1 apple 5 NJ
1 apple 5 CA
1 banana 3 CA
1 lemon 2 NY
1 lemon 2 PA
2 apple 7 TX
2 apple 7 NJ
2 apple 7 CA
2 banana 4 CA
2 lemon 4 NY
2 lemon 4 PA
解决方案
你可以做:
pd.merge(df1, df2).sort_values(by=['ID'])
输出:
ID Item Price state
0 1 apple 5 TX
1 1 apple 5 CA
2 1 apple 5 NJ
6 1 banana 3 CA
8 1 lemon 2 NY
9 1 lemon 2 PA
3 2 apple 7 TX
4 2 apple 7 CA
5 2 apple 7 NJ
7 2 banana 4 CA
10 2 lemon 4 NY
11 2 lemon 4 PA
推荐阅读
- reactjs - 获取其他组件 React.js 的值
- javascript - 需要摆脱视频的绿色背景(使其透明)
- r - 如何在用逗号分隔的单引号之间拆分字符串?
- php - 如何以 PEM 格式发布密钥并使用 php 以内容类型“text/plain”提供密钥?
- html - 样式化组件按钮 href/onclick 不起作用
- python - 如何使用线程同时读取文件
- operating-system - 页面大小如何影响内部碎片?
- c++ - 我无法理解移动语义如何作用于 std::string
- spring - 使用自定义验证器进行 Spring Bean 验证
- php - Laravel,为什么在路由文件(web.php)中使用 Auth::id() 返回 null?