Python中按间隔3分组DataFrame的Diff列并统计value计数
Pandas分组统计实现方案
直接上步骤和代码,一步步实现你要的统计需求:
- 导入Pandas库(如果还没导入的话)
import pandas as pd
- 定义分组区间与对应标签
按照你要求的0-3、3-6、6-9、>=9区间,用pd.cut来划分:
# 定义区间边界,right=False表示左闭右开,比如0-3包含3 bins = [-float('inf'), 3, 6, 9, float('inf')] labels = ['0-3', '3-6', '6-9', '>=9'] # 给原DataFrame添加分组列 df['Diff_group'] = pd.cut(df['Diff'], bins=bins, labels=labels, right=False)
- 统计各分组内value的出现次数
用pd.crosstab直接生成交叉统计表,完美匹配你的需求:
# 生成交叉统计 result = pd.crosstab(df['Diff_group'], df['value']) # 将统计结果中的0替换为空字符串,和你期望的输出格式一致 result = result.replace(0, '') # 把索引名改成'Diff' result.index.name = 'Diff'
- 查看最终结果
打印result就能得到你要的格式:
print(result)
输出结果:
Diff x y z 0-3 2 1 3-6 3 1 6-9 3 1 >=9 2 1
内容的提问来源于stack exchange,提问作者Xat Shar
相关产品推荐
相关产品推荐

