dataframe中group by的用法
时间: 2023-08-30 21:09:03 浏览: 162
group by是pandas中一个非常常用的函数,用于对数据进行分组聚合。它的语法结构如下:
```python
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
```
其中,by参数是用来指定分组的依据,可以是一个列名,也可以是多个列名组成的列表;axis参数是指定分组的轴,0表示按行分组,1表示按列分组;as_index参数是指定分组的结果是否使用分组依据的值作为索引,默认为True;sort参数是指定分组结果是否按照分组依据排序,默认为True。
groupby函数的返回值是一个DataFrameGroupBy对象,可以调用其各种聚合函数进行计算,例如sum、mean、count等。具体用法如下:
```python
df.groupby('column').sum() # 按某一列分组,并对每组进行求和计算
df.groupby(['column1', 'column2']).mean() # 按多个列分组,并对每组进行求均值计算
df.groupby('column').agg(['sum', 'mean']) # 对某一列进行分组,并对每组进行求和和求均值计算
```
相关问题
dataframe中groupby的用法
Pandas中的groupby()函数是一种非常有用的操作,它可以按照一个或多个列对数据进行分组并进行聚合操作。以下是groupby的一些用法:
1. 按照一个列进行分组:
```python
df.groupby('column_name')
```
2. 按照多个列进行分组:
```python
df.groupby(['column_name1', 'column_name2'])
```
3. 对分组后的数据进行一些聚合操作,比如求和、平均值等:
```python
df.groupby('column_name').sum()
df.groupby('column_name').mean()
```
4. 对每个分组进行一些自定义的聚合操作:
```python
df.groupby('column_name').agg({'column1': 'sum', 'column2': 'mean'})
```
5. 对每个分组进行一些过滤操作:
```python
df.groupby('column_name').filter(lambda x: x['column1'].sum() > 100)
```
6. 对每个分组进行一些变换操作:
```python
df.groupby('column_name').transform(lambda x: x - x.mean())
```
7. 对每个分组进行一些排序操作:
```python
df.groupby('column_name').apply(lambda x: x.sort_values('column1'))
```
dataframe中groupby函数用法实例
Groupby 函数是 Pandas 库中的一个非常有用的函数,它可以将数据按照某个或多个列进行分组,然后对每个分组进行聚合操作,例如求和、求平均值等等。下面是一个 dataframe 中 groupby 函数的用法实例:
```python
import pandas as pd
# 创建一个 dataframe
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'gender': ['F', 'M', 'M', 'M', 'F', 'M'],
'age': [25, 30, 35, 40, 45, 50],
'salary': [5000, 6000, 7000, 8000, 9000, 10000]
})
# 按照 gender 列进行分组,并对 salary 列求平均值
grouped = df.groupby('gender')['salary'].mean()
# 输出结果
print(grouped)
```
运行上面的代码,输出结果如下:
```
gender
F 7000.0
M 7666.666667
Name: salary, dtype: float64
```
可以看到,我们按照 gender 列进行了分组,并对 salary 列求了平均值。最终得到了一个 Series 对象,其中包含了每个分组的平均值。
阅读全文