如何在Pandas中统计含"M22"的唯一RUN_NUMBER行数量?
统计包含特定字符串的唯一RUN_NUMBER数量
我有一个多列数据集,已经筛选出了RUN_NUMBER列包含字符串"M22"的DataFrame切片。现在需要统计其中唯一RUN_NUMBER值的数量,示例数据中期望输出结果为3。
示例数据
RUN_NUMBER DATE_TIME CULTURE_DAY AGE_HRS AGE_DAYS 335991M 6/30/2022 0 0 0 M220621 7/1/2022 1 24 1 M220678 7/2/2022 2 48 2 510091M 7/3/2022 3 72 3 M220500 7/4/2022 4 96 4 335991M 7/5/2022 5 120 5 M220621 7/6/2022 6 144 6 M220678 7/7/2022 7 168 7 335991M 7/8/2022 8 192 8 M220621 7/9/2022 9 216 9 M220678 7/10/2022 10 240 10
已得到的分组计数结果
RUN_NUMBER 335991M 0 510091M 0 335992M 0 M220621 3 M220678 3 M220500 1
解决方案
直接通过筛选+唯一值统计即可得到结果:
分步实现
- 筛选出
RUN_NUMBER包含"M22"的行:
filtered_df = df[df['RUN_NUMBER'].str.contains('M22')]
- 统计该切片中
RUN_NUMBER的唯一值数量:
unique_count = filtered_df['RUN_NUMBER'].nunique() print(unique_count) # 输出:3
一步到位
也可以合并成一行代码:
unique_count = df[df['RUN_NUMBER'].str.contains('M22')]['RUN_NUMBER'].nunique()
说明:str.contains('M22')用于匹配包含指定字符串的行,nunique()方法直接统计列中唯一值的个数,正好对应需要的结果。
内容的提问来源于stack exchange,提问作者zizoo
相关产品推荐
相关产品推荐

