首頁 >後端開發 >Python教學 >如何按索引合併 Pandas 中的 DataFrame?

如何按索引合併 Pandas 中的 DataFrame?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 01:35:03581瀏覽

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,我們需要指定指定_index和right_left_index和right參數在合併或連接函數中。這告訴 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