如何堆疊多個 Pandas DataFrame?


龐大的 Python 宇宙中包含一個名為 Pandas 的閃亮星座。Pandas 以其強大的資料管理和處理能力而聞名全球,它為資料分析師提供了強大的工具,這些工具就像他們思想的延伸,將想法轉化為現實。

本次討論的核心在於 Pandas 的一個特定功能,即沿軸線融合 DataFrame。當面臨將來自不同來源的資訊融合或將資料彙總以進行全面分析的挑戰時,Pandas 提供了一系列函式,如 concat()、append() 和 merge()。我們需要選擇符合我們需求的工具,在本篇詳細闡述中,我們將簡化這一選擇過程。

在這篇引人入勝的文章中,我們將重點探索以下組合 DataFrame 的方法:

  • a. 列表推導和 Pandas.concat 的奇蹟

  • b. Pandas.concat 與 axis=0 和 keys 的細微之處

  • c. numpy.vstack 的優雅

  • d. Pandas.DataFrame.append 的魔力

  • e. Pandas.concat 的多功能性

語法:一瞥 Pandas 領域

在這個令人驚歎的旅程中,我們將遍歷 pandas 庫的領域,它是實現 DataFrame 融合功能的函式的入口。現在讓我們簡要概述一下每個函式的語法,這將照亮我們的道路。

concat()

pd.concat(objs, axis=0, join='outer', keys=None, ignore_index=False)

pd.concat() 沿指定的軸連線資料幀或序列,並提供連線型別和索引處理選項。

append()

df1.append(df2, ignore_index=False, verify_integrity=False, sort=False)

df1.append(df2) 將 df2 的行附加到 df1,預設情況下重置索引。

vstack()

numpy.vstack(tup)

numpy.vstack(tup) 垂直(按行)堆疊陣列,前提是它們具有相同的列數。

示例

使用列表推導和 pandas.concat

想象一下,你擁有一系列想要垂直組合的 DataFrame。別擔心,列表推導和 pandas.concat 的秘密將成為你的指路明燈。

import pandas as pd

# List of DataFrames
dfs = [df1, df2, df3]

# Concatenate the DataFrames vertically
result = pd.concat(dfs)

print(result)

輸出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用 pandas.concat 與 axis=0 和 keys

當試圖編織一個帶有分層索引的 DataFrame 掛毯時,使用 Pandas.concat 與 axis=0 和 keys 的路徑將展現其真正的輝煌。

import pandas as pd

# DataFrames df1 and df2 defined above

# Concatenate the DataFrames vertically with keys
result = pd.concat([df1, df2], keys=['df1', 'df2'])

print(result)

輸出

       A   B
df1 0  A0  B0
    1  A1  B1
    2  A2  B2
df2 3  A3  B3
    4  A4  B4
    5  A5  B5

使用 numpy.vstack

看,numpy.vstack 的本質潛伏在其中,準備喚醒垂直 DataFrame 連線的力量。

import pandas as pd
import numpy as np

# DataFrames df1 and df2 defined above

# Convert DataFrames to numpy arrays and stack them vertically
result_array = np.vstack([df1.values, df2.values])

# Convert the stacked numpy array back to a DataFrame
result = pd.DataFrame(result_array, columns=df1.columns)

print(result)

輸出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用 pandas.DataFrame.append

看,這是一段神秘的旅程,Pandas.DataFrame.append 的力量使 DataFrame 能夠沿著夢想的軸線合併,使它們的本質和諧統一。

import pandas as pd

# DataFrames df1 and df2 defined above

# Append df2 to df1
result = df1.append(df2)

print(result)

輸出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

使用 pandas.concat

見證 Pandas.concat() 函式的多功能性,因為它展現了它的魔力,無縫地沿選擇的軸線連線 DataFrame。

import pandas as pd

# DataFrames df1 and df2 defined above

# Concatenate the DataFrames vertically (default axis=0)
result = pd.concat([df1, df2])

print(result)

輸出

    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
4  A4  B4
5  A5  B5

結論

Pandas 具有豐富的函式來合併或融合多個 DataFrame,使您可以處理一系列資料操作任務。這種理解就像掌握了通往巨大寶藏的關鍵,承諾著豐富的見解。

但是,請記住,我們只是觸及了表面。還有其他函式,如 join() 和 update(),每個函式都擁有其獨特的功能,蘊含著無限的可能性。掌握 Pandas 的旅程是一場深入資料分析核心的探險,這是一場充滿發現的刺激和理解的快樂的旅程。

更新於:2023年8月28日

252 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.