>>> data = pd.DataFrame({'distance':[1,2,3,4,5,6,7,8,9,10],'values':np.arange(0,1,0.1)})
>>> data
distance values
0 1 0.0
1 2 0.1
2 3 0.2
3 4 0.3
4 5 0.4
5 6 0.5
6 7 0.6
7 8 0.7
8 9 0.8
9 10 0.9
我将根据距离列的值剪切数据.例如,有一些bin [1,3),[3,8),[8,10),[10,10),如果数据在同一bin中的列距离,我将它们分成相同的组并计算列值的平均值或总和值.
>>> data1 = data[lambda df:(df.distance >= 1) & (df.distance < 3)]
>>> data1
distance values
0 1 0.0
1 2 0.1
>>> np.mean(data1['values'])
0.05
如何将原始DataFrame切成几组(然后保存它们,对其进行处理…)?
data['categories']=pd.cut(data['distance'],[-np.inf,1,3,8,10,np.inf],right=False)
data.groupby('categories').mean()
输出:
distance values
categories
[-inf, 1) NaN NaN
[1, 3) 1.5 0.05
[3, 8) 5.0 0.40
[8, 10) 8.5 0.75
[10, inf) 10.0 0.90