gpt4 book ai didi

python - 将一列按另一列的值分组

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:15 27 4
gpt4 key购买 nike

我想创建一个新列,其中的分箱值按另一列分组。按年份划分的样本数据集如下所示:

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)))

有没有更好的方法来解决这个问题?

最佳答案

我认为需要:

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]

关于python - 将一列按另一列的值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49302707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com