看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
今天的案例是如何得到一个数据中某列指定值在各分组的数量。解决这类问题的是思路是先进行分组,分组后指定此列并应用方法进行指定值查询,最后统计数量。以下是数据需求中的源数据:
import pandas as pd
df = pd.read_csv('https://gairuo.com/file/data/team.csv')
df.head()
'''
name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
'''
以下是我们根据思路实现的解决代码:
df.groupby('team').Q1.apply(lambda x: x.loc[x==89].count())
'''
team
A 0
B 2
C 0
D 0
E 1
Name: Q1, dtype: int64
'''
另外还可以先筛选再分组求解:
df.loc[df.Q1==89].groupby('team').Q1.count()
'''
team
B 2
E 1
Name: Q1, dtype: int64
'''
这样就仅得到有此值的分组,其余的无此值。
(完)
更新时间:2024-08-18 15:38:45 标签:pandas 分组 groupby