python groupby分组后求均值
时间: 2025-01-02 10:41:51 浏览: 9
### 使用 `pandas` 进行分组并计算均值
为了在 Python 中使用 `pandas` 库对数据进行分组后计算均值,可以按照如下方式操作:
#### 创建示例 DataFrame
首先创建一个简单的 DataFrame 来展示如何执行此操作。
```python
import pandas as pd
import numpy as np
data = {
'Name': ['John', 'Helen', 'Sona', 'Ella'],
'Score': [82, 98, 91, 87],
'Option_Course': ['C#', 'Python', 'Java', 'C']
}
df = pd.DataFrame(data)
print("原始数据:")
print(df)
```
#### 执行 GroupBy 并计算均值
接下来定义要基于哪个列来进行分组,并调用 `.mean()` 方法来获取每组的平均分数。
```python
grouped_mean = df.groupby('Option_Course')['Score'].mean()
print("\n按选修课程分组后的成绩均值:")
print(grouped_mean)
```
这段代码会先依据 `'Option_Course'` 列中的不同类别将数据分成若干子集,再针对每个子集中对应的 `'Score'` 值计算其算术平均数[^1]。
如果希望保留原表结构的同时增加一列表示各组内的平均得分,则可采用 transform 函数:
```python
df['Average_Score'] = df.groupby('Option_Course')['Score'].transform('mean')
print("\n带有新增平均分列的数据框:")
print(df)
```
对于含有缺失值的情况,在应用 `groupby().mean()` 或者其他聚合函数之前应该考虑处理这些 NaN 值。可以通过设置参数 skipna=True (默认行为),使得忽略掉任何包含NaN 的记录;也可以利用 fillna() 方法预先填补它们[^3]。
阅读全文