📅  最后修改于: 2023-12-03 14:45:02.600000             🧑  作者: Mango
在 Pandas 中,groupby() 方法可以根据一个或多个列对数据进行分组。groupby() 方法返回一个 DataFrameGroupBy 对象,可以对分组之后的数据进行各种操作,如聚合、转换、过滤等。
groupby() 方法的基本用法如下:
df.groupby('column_name')
其中,'column_name' 是要分组的列名。如果要根据多个列进行分组,则可以传入一个列名列表:
df.groupby(['column_name1', 'column_name2'])
在分组之后,使用聚合函数(如 sum()、mean()、count() 等)可以对分组数据进行统计分析。例如,下面的代码会计算不同颜色车辆的平均价格、最大里程数和最小年份:
df.groupby('color').agg({'price': 'mean', 'mileage': 'max', 'year': 'min'})
下面是一个完整的代码示例,演示了如何根据多个列对数据进行分组,并对分组数据进行聚合:
import pandas as pd
# 创建示例数据
data = {
'color': ['red', 'red', 'blue', 'blue', 'red', 'green', 'green'],
'region': ['east', 'west', 'east', 'west', 'north', 'east', 'west'],
'price': [12, 8, 7, 5, 11, 9, 6],
'mileage': [21900, 23600, 21500, 22400, 19800, 21900, 21100],
'year': [2012, 2010, 2011, 2010, 2013, 2014, 2013]
}
df = pd.DataFrame(data)
# 按照颜色和地区分组,并计算平均价格、最大里程和最小年份
result = df.groupby(['color', 'region']).agg({'price': 'mean', 'mileage': 'max', 'year': 'min'})
# 显示结果
print(result)
输出结果为:
price mileage year
color region
blue east 7.0 21500 2011
west 5.0 22400 2010
green east 9.0 21900 2014
west 6.0 21100 2013
red north 11.0 19800 2013
west 10.0 23600 2010
在使用 groupby() 方法时,需要注意以下几点: