pandas 条件统计
时间: 2023-06-25 17:05:56 浏览: 160
可以使用 pandas 来进行条件统计,这里给出一个简单的例子:
假设有一份数据集,包含了学生的信息,其中包括学生的姓名、年龄、性别和成绩等信息。现在想要统计每个班级中成绩大于等于 90 分的学生的人数。
可以使用 pandas 来实现:
```python
import pandas as pd
# 读取数据集
df = pd.read_csv('student.csv')
# 按班级分组,并统计每个班级中成绩大于等于 90 分的学生的人数
result = df[df['score'] >= 90].groupby('class')['name'].count()
print(result)
```
这里假设数据集中的文件名为 `student.csv`,其中包含了 `name`、`age`、`gender`、`score` 和 `class` 等字段。上述代码中,首先使用 `pd.read_csv()` 方法读取数据集,然后使用 `df['score'] >= 90` 来筛选出成绩大于等于 90 分的学生,最后使用 `groupby()` 方法按班级分组,并对每个班级中成绩大于等于 90 分的学生的人数进行统计。
输出结果将会是一个 Series 对象,其中包含了每个班级中成绩大于等于 90 分的学生的人数。
相关问题
pandas多条件统计
您好!对于pandas的多条件统计,可以使用DataFrame的query()方法或布尔索引。下面是一个示例:
假设有一个DataFrame df,其中有三列'A'、'B'、'C',现在需要统计'A'列等于1且'B'列大于等于5的'C'列的平均值,可以这样操作:
```
# 使用query()方法
result = df.query("A==1 and B>=5")['C'].mean()
# 使用布尔索引
result = df[(df['A']==1) & (df['B']>=5)]['C'].mean()
```
其中,&表示“与”操作,|表示“或”操作,~表示“非”操作。可以根据实际需要进行组合使用。
使用pandas多条件统计
在 Pandas 中,我们可以使用 `groupby()` 函数对数据进行分组,并使用 `agg()` 函数对每个分组执行聚合操作。如果你想要对数据进行多条件统计,可以在 `groupby()` 函数中传递多个列名,然后在 `agg()` 函数中指定多个聚合操作。例如,如果你有一个包含 "State" 和 "City" 列的 DataFrame,你可以按 "State" 和 "City" 列进行分组,然后对每个分组计算总人口和平均人口,如下所示:
```python
import pandas as pd
data = {'State': ['NY', 'NY', 'NY', 'CA', 'CA', 'FL', 'FL'],
'City': ['New York', 'Buffalo', 'Rochester', 'Los Angeles', 'San Francisco', 'Miami', 'Tampa'],
'Population': [8622698, 258071, 210855, 3990456, 883305, 463347, 392890]}
df = pd.DataFrame(data)
grouped_df = df.groupby(['State', 'City']).agg({'Population': ['sum', 'mean']})
print(grouped_df)
```
输出结果如下:
```
Population
sum mean
State City
CA Los Angeles 3990456 3990456
San Francisco 883305 883305
FL Miami 463347 463347
Tampa 392890 392890
NY Buffalo 258071 258071
New York 8622698 8622698
Rochester 210855 210855
```
可以看到,数据按 "State" 和 "City" 列进行了分组,并计算了每个分组的总人口和平均人口。
阅读全文