pandas按照性别分组,分别统计男生和女生成绩的均值,最高分和最低分
时间: 2023-01-31 21:09:41 浏览: 263
你可以使用 pandas 的 `groupby` 函数按照性别分绩,然后使用聚合函数计算男生和女生成绩的均值、最高分和最低分。
以下是一个示例:
```python
import pandas as pd
# 假设有一个名为 "students" 的数据框,其中包含 "name"、"gender" 和 "score" 三列
# 按照性别分组
grouped = students.groupby("gender")
# 计算男生和女生成绩的均值、最高分和最低分
result = grouped.agg({"score": ["mean", "max", "min"]})
print(result)
```
输出的结果将是一个数据框,其中包含两行,分别对应男生和女生的成绩均值、最高分和最低分。
相关问题
利用pandas按照日和月进行均值统计
假设我们有一个数据集,其中包含日期、温度和湿度的数据。我们想要按天和每个月的均值来统计这些数据。我们可以利用pandas的groupby和resample函数实现这个目标。
首先,读入数据集:
```python
import pandas as pd
data = {'date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02', '2020-02-01', '2020-02-01'],
'temperature': [20, 25, 22, 24, 18, 19],
'humidity': [65, 75, 70, 72, 60, 62]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
```
现在,我们的数据框长这样:
```
temperature humidity
date
2020-01-01 20 65
2020-01-01 25 75
2020-01-02 22 70
2020-01-02 24 72
2020-02-01 18 60
2020-02-01 19 62
```
现在我们可以使用groupby按日和月来分组:
```python
day_mean = df.groupby(df.index.date).mean()
month_mean = df.resample('M').mean()
```
`groupby(df.index.date)` 会根据每个日期分组,然后对每组取平均值。 `resample('M')` 将数据按月重采样,然后对每个月取平均值。
现在 `day_mean` 和 `month_mean` 的值分别为:
`day_mean`:
```
temperature humidity
2020-01-01 22 70
2020-01-02 23 71
2020-02-01 18.5 61
```
`month_mean`:
```
temperature humidity
date
2020-01-31 22.75 70.5
2020-02-29 18.5 61.0
```
这样就实现了按日和月进行均值统计。
pandas统计每个月的最高温度和最低温度
假设有一个DataFrame对象df,其中包含日期和温度两列数据,可以使用以下代码统计每个月的最高温度和最低温度:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 将日期列转换为日期类型
df['date'] = pd.to_datetime(df['date'])
# 提取月份列
df['month'] = df['date'].dt.month
# 按月份和温度进行分组,统计最高温度和最低温度
result = df.groupby(['month'])['temperature'].agg(['max', 'min'])
print(result)
```
输出结果类似于:
```
max min
month
1 10 -5
2 12 -3
3 18 2
4 25 9
5 30 15
6 35 20
7 40 25
8 38 23
9 32 18
10 25 10
11 18 2
12 12 -3
```
其中,每行表示一个月份的最高温度和最低温度。