首页  >  文章  >  后端开发  >  如何按索引合并 Pandas 中的 DataFrame?有哪些不同类型的可用合并?

如何按索引合并 Pandas 中的 DataFrame?有哪些不同类型的可用合并?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 01:35:03504浏览

How do you merge DataFrames in Pandas by index and what are the different types of merges available?

按索引合并 DataFrame:综合指南

根据索引合并两个 DataFrame 是一项常见的数据操作任务。但是,如果未正确进行合并,则可能会出现错误或意外行为。在本指南中,我们将深入研究按索引合并的各种方法,突出显示它们的关键差异和潜在陷阱。

了解合并函数

在 Python 的 Pandas 库中,有几个函数可用于合并 DataFrame:merge、join 和 concat。每个函数都有自己的默认连接类型:

  • merge:内连接
  • join:左连接
  • concat:外连接

按索引合并

要按索引合并两个DataFrame,我们需要指定left_index和right_index参数在合并或连接函数中。这告诉 Pandas 使用 DataFrame 的行标签(索引)作为连接键。

示例:

考虑以下两个 DataFrame:

<code class="python">df1 = pd.DataFrame({'a': range(6), 'b': [5, 3, 6, 9, 2, 4]}, index=list('abcdef'))
df2 = pd.DataFrame({'c': range(4), 'd': [10, 20, 30, 40]}, index=list('abhi'))</code>

内连接(默认):

要使用合并函数执行内连接:

<code class="python">pd.merge(df1, df2, left_index=True, right_index=True)</code>

输出:

   a  b  c   d
a  0  5  0  10
b  1  3  1  20

左连接(默认):

要使用连接函数执行左连接:

<code class="python">df1.join(df2)</code>

输出:

   a  b    c     d
a  0  5  0.0  10.0
b  1  3  1.0  20.0
c  2  6  NaN   NaN
d  3  9  NaN   NaN
e  4  2  NaN   NaN
f  5  4  NaN   NaN

外部联接:

要使用 concat 函数执行外部联接:

<code class="python">pd.concat([df1, df2], axis=1)</code>

输出:

     a    b    c     d
a  0.0  5.0  0.0  10.0
b  1.0  3.0  1.0  20.0
c  2.0  6.0  NaN   NaN
d  3.0  9.0  NaN   NaN
e  4.0  2.0  NaN   NaN
f  5.0  4.0  NaN   NaN
h  NaN  NaN  2.0  30.0
i  NaN  NaN  3.0  40.0

重要说明:

  • 当连接列的大小与整个 DataFrame 相比较小时,按索引合并非常高效。
  • 按索引进行外连接的计算成本可能很高。
  • 在执行任何合并之前将索引转移到列通常被认为是良好的做法。

以上是如何按索引合并 Pandas 中的 DataFrame?有哪些不同类型的可用合并?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn