python - 如何根据行值组合两个不同长度的熊猫数据框
问题描述
我有以下两个熊猫数据框:
数据框#1:
user_id animals
0 1 'dog'
1 1 'cat'
2 1 'cow'
3 2 'dog'
4 2 'cat'
5 2 'cow'
...
数据帧#2:(column_D 在这个任务中并不重要)
location column_D
0 'CA' 1
1 'MA' 1
2 'AZ' 1
3 'CT' 1
...
我希望基于#1和#2创建一个新的数据框#3:
数据框#3:
user_id animals location
0 1 'dog' 'MA'
1 1 'cat' 'MA'
2 1 'cow' 'MA'
3 2 'dog' 'AZ'
4 2 'cat' 'AZ'
5 2 'cow' 'AZ'
...
数据帧#3 的第一列和第二列与数据帧#1 相同。对于第三列,我希望根据它的 user_id 和数据帧 #2 中的索引来分配一个位置。例如,对于数据帧 #3 中的第 0 行,由于其 user_id = 1,我将检查数据帧 #2 中索引 = 1 的位置,然后将该位置(在本例中为“MA”)分配给用户。
我搜索了使用 concat、map、merge 等函数的示例,但找不到与此案例类似的示例。有没有办法完成这个任务?
非常感谢!
解决方案
尝试地图:
df["location"] = df1.user_id.map(df2.location)
user_id animals location
0 1 'dog' 'MA'
1 1 'cat' 'MA'
2 1 'cow' 'MA'
3 2 'dog' 'AZ'
4 2 'cat' 'AZ'
5 2 'cow' 'AZ'
推荐阅读
- java - 为什么 ArrayList 只打印一种对象类型
- python - 理解中的字典唯一值
- r - 在 facet_grid 调用中,如何从 margin = T 中删除一种美学(其他面板的所有值一起?)
- reactjs - 按下按钮时将道具发送到本机
- c# - 在 Unity 中单击禁用的对象
- youtube-livestreaming-api - 从测试切换到实时时的“无效状态转换”响应
- ms-access - DateDiff 错误地计算年龄
- excel - 尝试按 TODAY 日期将数据提取到另一张工作表(同一日期的多行到新工作表上的多行
- gitlab - Gitlab CICD在生产环境设置错误的服务url
- python - Django - request.is_secure 总是返回 False