groupby函數作用

在pandas中,groupby函數用於對DataFrame對象進行分組操作。它將數據按照指定的列或多個列進行分組,並返回一個GroupBy對象,可以對分組後的數據進行聚合、轉換和篩選等操作。

groupby函數的常見用法如下:

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

參數說明:

  • by:指定用於分組的列名、列名的列表、字典或Series對象。如果是列名或列名的列表,表示按照指定的列進行分組;如果是字典或Series對象,表示按照字典或Series對象的值進行分組。
  • axis:指定按照列(axis=0)還是按照行(axis=1)進行分組。默認值爲0,表示按照列進行分組。
  • level:指定按照多級索引的哪一級進行分組。
  • as_index:指定是否將分組的列作爲索引,默認爲True。
  • sort:指定是否按照分組鍵對結果進行排序,默認爲True。
  • group_keys:指定是否在結果中包含分組鍵,默認爲True。
  • squeeze:指定當分組只有一個組時,是否返回一個Series對象,默認爲False。
  • observed:指定在進行分組操作時是否考慮觀察到的所有值,默認爲False。

示例:

import pandas as pd

data = {'name': ['John', 'Mary', 'Peter', 'John'],
        'city': ['London', 'Paris', 'London', 'Berlin'],
        'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

# 按照name列進行分組,並計算每個分組的平均年齡
grouped = df.groupby('name')
mean_age = grouped['age'].mean()
print(mean_age)

# 按照多個列進行分組,並計算每個分組的人數
grouped = df.groupby(['name', 'city'])
count = grouped.size()
print(count)

輸出:

name
John     32.5
Mary     30.0
Peter    35.0
Name: age, dtype: float64

name   city  
John   Berlin    40
       London    25
Mary   Paris     30
Peter  London    35
dtype: int64

在上述示例中,首先使用groupby函數按照name列進行分組,並計算每個分組的平均年齡。然後,使用groupby函數按照name和city兩列進行分組,並計算每個分組的人數。最後,打印了計算結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章