首页 > 解决方案 > 如何在Python中计算列的段中的特定数字

问题描述

我需要计算我在细分市场上看到多少次0<x<10, 10<x<20, 20<x<30 and so on. 我感谢任何建议。谢谢!

for segment in range(segments):
    seg = train.iloc[segment*rows:segment*rows+rows]
    x = seg['days']
    X_train.loc[segment, '0<x<10'] = x.between(0,10).count()
    X_train.loc[segment, '10<x<20'] = x.between(10,20).count()
    X_train.loc[segment, '20<x<30'] = x.between(20,30).count()
    X_train.loc[segment, '30<x<40'] = x.between(30,40).count()
    X_train.loc[segment, '40<x<50'] = x.between(40,50).count()
    X_train.loc[segment, '50<x<60'] = x.between(50,60).count()
    X_train.loc[segment, '60<x<70'] = x.between(60,70).count()
    X_train.loc[segment, '70<x<80'] = x.between(70,80).count()
    X_train.loc[segment, '80<x<90'] = x.between(80,90).count()
    X_train.loc[segment, '90<x<100'] = x.between(90,100).count()

我期待看到这样的表 X_train :

0<x<10   10<x<20  20<x<30 ...
600       114       76    ...
845       112       0     ...

但我得到的表格显示了 seg['days'] 中的总行数:

0<x<10   10<x<20  20<x<30 ...
15000     15000    15000  ...
15000     15000    15000  ...

标签: python-3.x

解决方案


我相信你正在使用pandas图书馆;如果没有,这将是解决您问题的绝佳工具。

听起来您想将数据分成组,然后计算每个组中 0 到 100 之间的值的数量。一种方便的方法pandas是使用groupby()with pd.cut()

df.groupby(pd.cut(df['x'], np.arange(0, 100, 10))).count()

推荐阅读