You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Pandas DataFrame中筛选出行数为6条的客户数据

Pandas筛选拥有6条记录的客户方法

你之前用df['Customer No'].value_counts() == 6没成功,是因为这个操作返回的是一个以客户ID为索引的布尔Series,没法直接匹配原DataFrame的行索引来筛选。给你几个实用的解决方法:

  • 方法一:用groupby+filter(最直观)
    直接按客户ID分组,筛选出分组长度等于6的所有行:

    filtered_df = df.groupby('Customer No').filter(lambda x: len(x) == 6)
    

    这个方法会自动保留符合条件客户的所有原始数据,一步到位。

  • 方法二:先获取有效客户ID再筛选
    先提取出记录数为6的客户ID列表,再用这个列表过滤原DataFrame:

    # 获取符合条件的客户ID
    valid_ids = df['Customer No'].value_counts()[lambda x: x == 6].index
    # 筛选数据
    filtered_df = df[df['Customer No'].isin(valid_ids)]
    
  • 方法三:用transform添加计数列
    给每行添加对应客户的总记录数,再筛选计数为6的行:

    # 添加临时计数列
    df['record_count'] = df.groupby('Customer No')['Customer No'].transform('count')
    # 筛选并删除临时列
    filtered_df = df[df['record_count'] == 6].drop('record_count', axis=1)
    

这三种方法都能达到你的需求,其中方法一最简洁,适合刚接触Pandas的新手使用。

内容的提问来源于stack exchange,提问作者STcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:15:30