首页 > 解决方案 > 按新列分组而不添加它

问题描述

有没有办法df按系列对数据框进行分组s而不首先添加?sdf

我问的原因是因为

df.assign(bin=pd.cut(df[what],n)).groupby('bin')

似乎创建了一个完整的副本,有时需要太多的内存。

标签: pythonpandas

解决方案


你可以做

df.groupby(pd.Serise(pd.cut(df[what],n),index=df.index))

更多信息

df.groupby(pd.Series(pd.cut(df.c1,3),index=df.index)).sum()
Out[156]: 
              c1  c2  c3
c1                      
(0.994, 3.0]   6  13  13
(3.0, 5.0]     0   0   0
(5.0, 7.0]    13  10   7


df
Out[154]: 
   c1  c2  c3
0   7   5   2
1   1   2   2
2   3   4   3
3   1   4   6
4   1   3   2
5   6   5   5

推荐阅读