gpt4 book ai didi

python - 如何在 2 列上加入 pandas 数据框?

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:35 24 4
gpt4 key购买 nike

假设以下数据帧

df1:

id    data1
1 10
2 200
3 3000
4 40000

df2:

id1    id2    data2
1 2 210
1 3 3010
1 4 40010
2 3 3200
2 4 40200
3 4 43000

我想要新的 df3:

id1    id2    data2    data11    data12        
1 2 210 10 200
1 3 3010 10 3000
1 4 40010 10 40000
2 3 3200 200 3000
2 4 40200 200 40000
3 4 43000 3000 40000

在 Pandas 中实现这一点的正确方法是什么?


编辑:具体数据请不要随意。我选择此特定数据只是为了显示所有内容的来源,但每个数据元素与任何其他数据元素都没有关联。


其他数据框示例,因为第一个不够清楚:

df4:

id    data1
1 a
2 b
3 c
4 d

df5:

id1    id2    data2
1 2 e
1 3 f
1 4 g
2 3 h
2 4 i
3 4 j

我想要新的 df6:

id1    id2    data2    data11    data12        
1 2 e a b
1 3 f a c
1 4 g a d
2 3 h b c
2 4 i b d
3 4 j c d

编辑2:Data11 和 Data12 只是 data1 的副本,具有相应的 id id1id2

最佳答案

1.首先使用id1和id列合并两个dataframe
2.将data1重命名为data11
3.删除id列
4.现在在id2和id上合并df1和df3

df3 = pd.merge(df2,df1,left_on=['id1'],right_on=['id'],how='left')
df3.rename(columns={'data1':'data11'},inplace=True)
df3.drop('id',axis=1,inplace=True)

df3 = pd.merge(d3,df1,left_on=['id2'],right_on=['id'],how='left')
df3.rename(columns={'data1':'data12'},inplace=True)
df3.drop('id',axis=1,inplace=True)

希望能解决你的问题

关于python - 如何在 2 列上加入 pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56823316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com