将pandas数据帧中的数据分组为间隔

时间:2017-02-02 15:25:10

标签: python pandas dataframe binning

我有一个数据框,有速度记录(100万条目)。我必须把它们分成特定的区间,这里用cw_bins表示。我已设法在下面的代码中执行此操作。但是以这种方式访问​​每个bin我需要更改cw_y的索引。我可以编写一个for循环来将它们保存在不同的列表中。我只是想知道大熊猫是否有更好的做法。

cw_bins=[14.0,15.0,16.0,17.0,18.0,19.0,20.0]
groups=filter_power.groupby(pd.cut(filter_power.Speed,cw_bins))
cw_x=list(groups)
cw_y=(cw_x[4])
cw_z=(cw_y[1])

1 个答案:

答案 0 :(得分:4)

如何使用numpy.digitize

cw_bins=[14.0,15.0,16.0,17.0,18.0,19.0,20.0]

# create a column with the index of the binned value
df['binned_values'] = np.digitize(df.Speed.values, bins=cw_bins)

# for example - get all records between 16.0 and 17.0
df[df['binned_values'] == 3]