我想要创建一个新列,其中包含按另一列分组的被绑定的值。按年使用回收箱的样本数据集如下所示:
Year A Bin
1999 1 [1-3]
1999 3 [1-3]
1999 10 [10-11]
1999 11 [10-11]
2000 43 [39-43]
2000 39 [39-43]
2000 22 [20-23]
2000 21 [20-23]
2001 11 [10-11]
2001 10 [10-11]
2001 198 [185-200]
2001 188 [185-200]我曾经使用过pd.cut,但是我很难在每年内把它放到垃圾箱里,而不是整个专栏。我尝试使用这个函数,但是我得到了一个错误:TypeError: 'Series' object is not callable。
def var_to_bins(dataset, var, num_bins):
dataset[str(var)+'_test'] = dataset.groupby(dataset.survyear(pd.cut(dataset[var], num_bins)))有什么更好的办法吗?
发布于 2018-03-15 14:58:20
我认为需要:
dataset['Bins'] = dataset.groupby('Year')['A'].transform(lambda x: pd.cut(x, 2))
print (dataset)
Year A Bin Bins
0 1999 1 [1-3] (0.99, 6.0]
1 1999 3 [1-3] (0.99, 6.0]
2 1999 10 [10-11] (6.0, 11.0]
3 1999 11 [10-11] (6.0, 11.0]
4 2000 43 [39-43] (32.0, 43.0]
5 2000 39 [39-43] (32.0, 43.0]
6 2000 22 [20-23] (20.978, 32.0]
7 2000 21 [20-23] (20.978, 32.0]
8 2001 11 [10-11] (9.812, 104.0]
9 2001 10 [10-11] (9.812, 104.0]
10 2001 198 [185-200] (104.0, 198.0]
11 2001 188 [185-200] (104.0, 198.0]https://stackoverflow.com/questions/49302707
复制相似问题