按新列分组而不添加

时间:2019-05-17 13:45:00

标签: python pandas

是否有一种方法可以按系列df对数据帧s进行分组,而不必先将s添加到df上?

我问的原因是因为

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

似乎要创建完整副本,并且有时需要太多内存。

1 个答案:

答案 0 :(得分:1)

您可以使用

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