gpt4 book ai didi

python - 在 Pandas 上合并 2 个数据框

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:02 25 4
gpt4 key购买 nike

抱歉,我有一个非常简单的问题。所以我有两个数据框,看起来像数据框1:列:abc d e f g h

数据框2:列:e ef

我正在尝试将 Dataframe 2 连接到 Dataframe 1 的 e 列,这应该会产生结果列: a b c de ef g h或者列:abc d e f g h ef

但是:df1.merge(df2, how = 'inner', on = 'e') 当我打印出来时会产生一个空白数据框。

“外部”合并仅垂直扩展数据框(就像使用附加函数一样)。

希望得到一些帮助,谢谢!

最佳答案

您需要相同dtypes的列进行连接,因此需要转换:

#convert string column to int
df1['e'] = df1['e'].astype(int)
#inner is default value, so can be omit
df1.merge(df2, on = 'e')

示例:

df1 = pd.DataFrame({'a':list('abcdef'),
'b':[4,5,4,5,5,4],
'c':[7,8,9,4,2,3],
'd':[1,3,5,7,1,0],
'e':['5','3','6','9','2','4'],
'f':list('aaabbb'),
'g':[1,3,5,7,1,0]})

print (df1)
a b c d e f g
0 a 4 7 1 5 a 1
1 b 5 8 3 3 a 3
2 c 4 9 5 6 a 5
3 d 5 4 7 9 b 7
4 e 5 2 1 2 b 1
5 f 4 3 0 4 b 0

df2 = pd.DataFrame({'ef':[10,30,50,70,10,100],
'e':[5,3,6,9,0,7]})
print (df2)
e ef
0 5 10
1 3 30
2 6 50
3 9 70
4 0 10
5 7 100
<小时/>
df1['e'] = df1['e'].astype(int)
df = df1.merge(df2, on = 'e')
print (df)
a b c d e f g ef
0 a 4 7 1 5 a 1 10
1 b 5 8 3 3 a 3 30
2 c 4 9 5 6 a 5 50
3 d 5 4 7 9 b 7 70

关于python - 在 Pandas 上合并 2 个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44899119/

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