首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按另一列的值分组的列

按另一列的值分组的列
EN

Stack Overflow用户
提问于 2018-03-15 14:55:22
回答 1查看 613关注 0票数 1

我想要创建一个新列,其中包含按另一列分组的被绑定的值。按年使用回收箱的样本数据集如下所示:

代码语言:javascript
复制
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

代码语言:javascript
复制
def var_to_bins(dataset, var, num_bins):
    dataset[str(var)+'_test'] = dataset.groupby(dataset.survyear(pd.cut(dataset[var], num_bins)))

有什么更好的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 14:58:20

我认为需要:

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49302707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档