gpt4 book ai didi

python - 使用相似的列合并 2 个数据框

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

我列出了 2 个数据框,如下所示

df

 Type       Breed     Common Color  Other Color  Behaviour
Golden Big Gold White Fun
Corgi Small Brown White Crazy
Bulldog Medium Black Grey Strong

df2

 Type              Breed    Behaviour   Bark Sound
Pug Small Sleepy Ak
German Shepard Big Cool Woof
Puddle Small Aggressive Ek

我想按 TypeBreedBehavior 列合并 2 个数据框。

因此,我希望的输出是:

Type           Breed      Behavior
Golden Big Fun
Corgi Small Crazy
Bulldog Medium Strong
Pug Small Sleepy
German Shepard Big Cool
Puddle Small Aggressive

最佳答案

你需要concat :

print (pd.concat([df1[['Type','Breed','Behaviour']], 
df2[['Type','Breed','Behaviour']]], ignore_index=True))

Type Breed Behaviour
0 Golden Big Fun
1 Corgi Small Crazy
2 Bulldog Medium Strong
3 Pug Small Sleepy
4 German Shepard Big Cool
5 Puddle Small Aggressive

更一般的是使用intersection对于两个 DataFrames 的列:

cols = df1.columns.intersection(df2.columns)
print (cols)
Index(['Type', 'Breed', 'Behaviour'], dtype='object')

print (pd.concat([df1[cols], df2[cols]], ignore_index=True))
Type Breed Behaviour
0 Golden Big Fun
1 Corgi Small Crazy
2 Bulldog Medium Strong
3 Pug Small Sleepy
4 German Shepard Big Cool
5 Puddle Small Aggressive

如果 df1df2 没有 NaN 值,则更一般地使用 dropna用于删除具有 NaN 的列:

print (pd.concat([df1 ,df2], ignore_index=True))
Bark Sound Behaviour Breed Common Color Other Color Type
0 NaN Fun Big Gold White Golden
1 NaN Crazy Small Brown White Corgi
2 NaN Strong Medium Black Grey Bulldog
3 Ak Sleepy Small NaN NaN Pug
4 Woof Cool Big NaN NaN German Shepard
5 Ek Aggressive Small NaN NaN Puddle


print (pd.concat([df1 ,df2], ignore_index=True).dropna(1))
Behaviour Breed Type
0 Fun Big Golden
1 Crazy Small Corgi
2 Strong Medium Bulldog
3 Sleepy Small Pug
4 Cool Big German Shepard
5 Aggressive Small Puddle

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

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