在pd.DataFrame.merge()
和pd.concat()
之间有什么本质区别?
到目前为止,这是我发现的,请评论一下我的理解是多么完整和准确:
.merge()
只能使用列(加上行索引),并且在语义上适合于数据库样式的操作。.concat()
可以与任一轴一起使用,只使用索引,并提供添加层次索引的选项。
顺便说一下,这允许以下冗余:两者都可以使用行索引组合两个数据帧。
pd.DataFrame.join()
只提供了.merge()
用例子集的简写
(Pandas擅长处理数据分析中非常广泛的用例。探索文档以找出执行特定任务的最佳方式可能有点令人望而生畏。)
pd.concat
以Iterable
作为参数。因此,它不能将DataFrame
s直接作为参数。连接时,{pd.merge
可以采用DataFrame
s作为参数,并用于将两个具有相同列或索引的DataFrame
组合在一起,这不能用pd.concat
来完成,因为它将在数据帧中显示重复列。而join可用于连接具有不同索引的两个
DataFrame
。好问题。主要区别在于:
^{} 可在两个轴上工作。
另一个区别是,} 具有左,右,外部,内部默认连接。
pd.concat
具有内部默认值和外部连接,而^{第三个值得注意的区别是:
pd.DataFrame.merge()
在合并同名列时可以选择设置列后缀,而对于pd.concat
这是不可能的。使用
pd.concat
默认情况下,您可以堆叠多个数据帧(axis=0
)的行,并且当您设置axis=1
时,您可以模拟pd.DataFrame.merge()
函数。一些有用的
pd.concat
示例:一个非常高的级别差异是
merge()
用于基于公共列的值组合两个(或更多)数据帧(也可以使用索引,使用left_index=True
和/或right_index=True
),并且concat()
用于将一个(或多个)数据帧一个接一个地附加到另一个(或侧面,具体取决于axis
选项设置为0或1)。join()
用于在索引的基础上合并2个数据帧;而不是使用merge()
与选项left_index=True
一起使用join()
。例如:
相关问题 更多 >
编程相关推荐