gpt4 book ai didi

python - pandas 中 merge() 和 concat() 的区别

转载 作者:IT老高 更新时间:2023-10-28 20:38:16 33 4
gpt4 key购买 nike

pd.DataFrame.merge()pd.concat()的本质区别是什么?

到目前为止,这是我发现的,请评论我的理解有多完整和准确:

  • .merge() 只能使用列(加上行索引),它在语义上适用于数据库风格的操作。 .concat() 可以与任一轴一起使用,仅使用索引,并提供添加分层索引的选项。

  • 顺便说一句,这允许以下冗余:两者都可以使用行索引组合两个数据帧。

  • pd.DataFrame.join() 只是为 .merge()

(Pandas 擅长处理数据分析中非常广泛的用例。探索文档以找出执行特定任务的最佳方法可能有点令人生畏。)

最佳答案

一个非常高层次的区别是 merge() 用于根据公共(public)列的值组合两个(或多个)数据帧(也可以使用索引,使用 left_index =True 和/或 right_index=True),而 concat() 用于将一个(或多个)数据帧附加在另一个下方(或横向,取决于 axis 选项设置为 0 还是 1)。

join() 用于在索引的基础上合并2个dataframe;我们可以使用 join(),而不是使用带有选项 left_index=Truemerge()

例如:

df1 = pd.DataFrame({'Key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'], 'data1': range(7)})

df1:
Key data1
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 a 5
6 b 6

df2 = pd.DataFrame({'Key': ['a', 'b', 'd'], 'data2': range(3)})

df2:
Key data2
0 a 0
1 b 1
2 d 2

#Merge
# The 2 dataframes are merged on the basis of values in column "Key" as it is
# a common column in 2 dataframes

pd.merge(df1, df2)

Key data1 data2
0 b 0 1
1 b 1 1
2 b 6 1
3 a 2 0
4 a 4 0
5 a 5 0

#Concat
# df2 dataframe is appended at the bottom of df1

pd.concat([df1, df2])

Key data1 data2
0 b 0 NaN
1 b 1 NaN
2 a 2 NaN
3 c 3 NaN
4 a 4 NaN
5 a 5 NaN
6 b 6 NaN
0 a Nan 0
1 b Nan 1
2 d Nan 2

关于python - pandas 中 merge() 和 concat() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256104/

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