我想对我的数据做一些总结,可以是形式上的,
A B
------
10 2
20 4
5 6
5 8
9 14
我希望根据列B的值对这些行进行分组,方法是将它们量化为范围为5的组。因此,如果列B的某些值落在1-5范围内,则该行将属于该组。在这里的示例中,第1行和第2行属于组1-5,而第3和第4行属于组6-10。然后,每个组将变成仅包含A列值的一行。所以我们最终会
A B
------
15 1-5
5 6-10
9 11-15
如何才能在不重复每一行的情况下,对熊猫做到这一点呢?
发布于 2018-10-18 11:21:39
将cut
与arange
一起用于回收箱,对标签进行列表理解,然后聚合mean
bins = np.arange(0, 16, 5)
labels = [f'{i+1}-{j}' for i, j in zip(bins[:-1], bins[1:])]
binned = pd.cut(df['B'], bins=bins, labels=labels)
df1 = df.groupby(binned)['A'].mean().reset_index()[['A','B']]
print (df1)
A B
0 15 1-5
1 5 6-10
2 9 11-15
https://stackoverflow.com/questions/52872671
复制相似问题