我有一个数据框,有速度记录(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])
答案 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]