首頁  >  文章  >  後端開發  >  如何在 Pandas 中連接兩個 DataFrame 的行,以及是否有任何組合資料幀的替代方法?

如何在 Pandas 中連接兩個 DataFrame 的行,以及是否有任何組合資料幀的替代方法?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 03:44:281037瀏覽

How can I concatenate rows of two DataFrames in Pandas, and are there any alternative methods for combining dataframes?

連接Pandas 中兩個Dataframe 的行:指南

在pandas 處理資料時,常常會出現需要合併來自多個來源的數據。這可以透過多種方法來實現,其中之一是串聯。連接允許水平對齊和合併資料幀,呈現資料的全面視圖。

連接兩個資料幀的行

連接兩個資料幀中的行的過程、df_a 和 df_b 很簡單。透過呼叫 concat 函數並指定 axis=1,您可以按列連接資料幀,從而產生一個具有與 df_a 和 df_b 相同行數 (nRow) 且列數等於數字總和的資料幀兩個資料框中的列數。

考慮以下範例:

<code class="python">dict_data = {'Treatment': ['C', 'C', 'C'], 'Biorep': ['A', 'A', 'A'], 'Techrep': [1, 1, 1], 'AAseq': ['ELVISLIVES', 'ELVISLIVES', 'ELVISLIVES'], 'mz':[500.0, 500.5, 501.0]}
df_a = pd.DataFrame(dict_data)
dict_data = {'Treatment1': ['C', 'C', 'C'], 'Biorep1': ['A', 'A', 'A'], 'Techrep1': [1, 1, 1], 'AAseq1': ['ELVISLIVES', 'ELVISLIVES', 'ELVISLIVES'], 'inte1':[1100.0, 1050.0, 1010.0]}
df_b = pd.DataFrame(dict_data)</code>

要水平連接這些資料框,您可以使用以下程式碼:

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

結果資料幀將具有以下結構:

<code class="python">        AAseq Biorep  Techrep Treatment     mz      AAseq1 Biorep1  Techrep1  \
0  ELVISLIVES      A        1         C  500.0  ELVISLIVES       A         1   
1  ELVISLIVES      A        1         C  500.5  ELVISLIVES       A         1   
2  ELVISLIVES      A        1         C  501.0  ELVISLIVES       A         1   

  Treatment1  inte1  
0          C   1100  
1          C   1050  
2          C   1010  </code>

替代方法

除了串聯之外,還有可用於組合資料幀的替代方法。這些方法包括合併和連接。

合併

合併資料幀根據特定的列或鍵將它們組合起來。當資料框共享一個公共列並且您希望基於該列組合資料時,這非常有用。對於上面給出的具有相同行數的資料幀df_a 和df_b,您可以使用索引將它們合併,如下所示:

<code class="python">df_a.merge(df_b, left_index=True, right_index=True)</code>

加入

加入dataframes 與合併類似,但它不是根據特定列組合資料幀,而是根據行的位置連接資料幀。同樣,對於具有相同行數且沒有重複索引的 df_a 和 df_b,您可以如下連接它們:

<code class="python">df_a.join(df_b)</code>

使用哪種方法的選擇取決於特定資料的要求分析任務。串聯、合併和連接都提供了組合資料幀的便捷方法,並提供了處理各種場景的靈活性。

以上是如何在 Pandas 中連接兩個 DataFrame 的行,以及是否有任何組合資料幀的替代方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn