pandas分组计数:查看每个元素出现的次数
相当于SQL语句中distinct,以及EXCEL中删除重复项,查看每个选项有多少个元素
提供以下四种办法:value_counts、size、groupby、groupby...agg
新建dataframe样例:
import pandas as pd df = pd.DataFrame([["地区1", 20, 12, 11], ["地区2", 20, 12, 11], ["地区3", 90, 30, 11], ["地区2", 90, 30, 12], ["地区3", 10, 20, 30]], columns=["地区","col1", "col2","col3"]) df
查看数据:
统计每个地区出现的次数
1、方法一:value_counts
# 方法一: df["地区"].value_counts()
2、方法二:size
# 方法二: df.groupby("地区").size()
3、方法三:groupby 通过分组之后进行计数
# 方法三:先按照地区分组,接着统计每组的个数 df.groupby("地区")["地区"].count()
4、方法四:groupby...agg 通过分组汇总的方式进行统计
# 直接根据地区对所有数据进行计数 df.groupby("地区").agg("count") # 第四种方式:分组统计,和第三种类似 df["count"] = 1 # 多增加一个字段,都标识值为1 # 按照大区分组,统计每一组中的count字段的sum值! df.groupby("地区").agg({"count": "sum"}) # 或者直接求和count列 df.groupby("地区")["count"].sum()
最后的结果如下: