我需要一些建议。我有一个数据帧,我想将列'a‘中的数据重新分类,以便如果它落在一个范围( 0 -4、5-9、10-14等)内,则将其分为5组,并创建一个具有从0开始的累加值的新列'b’,该列将表示该范围
如果数据帧是这个
df = pd.DataFrame(data={'a': [9,5,4,2,7,5,6,19,2,0,8,21,14]})列b应如下所示
df['b'] = [1,1,0,0,1,1,1,3,0,0,1,4,2]我想不出来,所以任何的指针都是很棒的,谢谢。
发布于 2021-11-12 17:54:25
您的预期输出不是很清楚,但我相信您正在寻找类似以下内容:
df['b'] = round(df['a'] / 5)或者可能是这样(截断,而不是舍入):
df['b'] = df['a'] // 5发布于 2021-11-12 18:05:12
df = pd.DataFrame(data={'a': [9,5,4,2,7,5,6,19,2,0,8,21,14]})
df['b'] = df.apply(lambda x : pd.cut(x,[-1,4,9,14,19,23],labels=[0,1,2,3,4]))
print(df)输出:
a b
0 9 1
1 5 1
2 4 0
3 2 0
4 7 1
5 5 1
6 6 1
7 19 3
8 2 0
9 0 0
10 8 1
11 21 4
12 14 2https://stackoverflow.com/questions/69947054
复制相似问题