【发布时间】:2018-11-13 22:33:06
【问题描述】:
我有一个数据框。我想合并值并将其附加到新列。我可以用 pd.cut 做到这一点。但问题是,我使用 pd.cut 手动设置标签和垃圾箱。但是,我只想设置步长(不是 bin 编号)。我也尝试了 np.linespace、np.arange 但我必须指定起点和终点以及 bin 计数。但是可能有一个数据框,我无法知道数据框中的最大和最小数字
df = pd.DataFrame([10, 10, 23, 42, 51, 33, 52, 42,44, 67, 65, 12, 10, 2, 3, 2, 77, 76],columns=['values'])
bins = [0, 10, 20,30, 40, 50, 60, 70]
labels = ['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70']
df['bins'] = pd.cut(df['values'], bins, labels=labels)
print (df)
values bins
0 10 0-10
1 10 0-10
2 23 20-30
3 42 40-50
4 51 50-60
5 33 30-40
6 52 50-60
7 42 40-50
8 44 40-50
9 67 60-70
10 65 60-70
11 12 10-20
12 10 0-10
13 2 0-10
14 3 0-10
15 2 0-10
16 77 NaN
17 76 NaN
这是我的输出,我想获得相同的输出,但不想手动设置 bin 和标签 p.s.正如你从这里看到的,如果我的值大于 70,它将是 Nan。所以这也是我想设置步长“10”的原因。我可以有持续值,所以我希望它使用步长 10 自动标记
非常感谢您的帮助
谢谢!!!
【问题讨论】:
标签: python pandas numpy dataframe bin