首頁 >後端開發 >Python教學 >如何使用 Pandas 進行資料聚合?

如何使用 Pandas 進行資料聚合?

Patricia Arquette
Patricia Arquette原創
2024-12-18 06:11:11452瀏覽

How to Perform Data Aggregation with Pandas?

Pandas 中的聚合

使用 Pandas,您可以執行各種聚合操作來降低維度並彙總資料。

問題 1:我要怎麼用 Pandas 進行聚合?

Pandas 提供了許多聚合函數,包括平均值 ()、總和 ()、計數 ()、最小值 () 和最大值 ()。您可以使用這些函數來計算每個群組的總計統計資料。例如:

# Calculate mean of each group based on 'A' and 'B' columns
df1 = df.groupby(['A', 'B']).mean()

# Print the results
print(df1)

問題2:聚合後沒有DataFrame!發生了什麼事?

當您對多個欄位套用聚合時,結果物件可以是 Series 或 DataFrame,這取決於分組的列數。

  • Series: 如果按一列或多列進行分組,則結果是一個系列,其索引對應於
  • DataFrame:如果僅按一列進行分組,則結果為DataFrame,其中的列與原始列相對應。

取得 DataFrame對於所有列,在 groupby 函數中使用 as_index=False。

問題 3:如何聚合主要字串列(以列表、元組、帶分隔符號的字串)?

要聚合字串列,您可以使用清單、元組或連線操作。

  • 列表:轉換使用list() 或將欄位加入清單GroupBy.apply(list).
  • 元組:使用tuple() 或GroupBy.apply(tuple).
  • 字串將列轉換為元組分隔符號: 使用分隔符號將字串組合起來str.join().

例如:

# Convert 'B' column values to a list for each group
df1 = df.groupby('A')['B'].agg(list).reset_index()

# Combine 'B' column values into a string with separator for each group
df2 = df.groupby('A')['B'].agg(','.join).reset_index()

問題4:如何聚合計數?

計算每個值中的非缺失值組,使用 GroupBy.count()。若要計算所有值(包括缺失值),請使用 GroupBy.size()。

例如:

# Count non-missing values in 'C' column for each group
df1 = df.groupby('A')['C'].count().reset_index(name='COUNT')

# Count all values in 'A' column for each group
df2 = df.groupby('A').size().reset_index(name='COUNT')

問題 5:如何建立由聚合值填入的新欄位?

您可以使用transform()方法新增包含聚合值的新欄位。 Transform() 函數對每個群組套用指定的操作,並傳回一個與原始物件大小相同的新物件。

例如:

# Create a new 'C1' column with the sum of 'C' grouped by 'A'
df['C1'] = df.groupby('A')['C'].transform('sum')

以上是如何使用 Pandas 進行資料聚合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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