Python 如何动态创建连续变量的容器
我在熊猫中有以下数据帧Python 如何动态创建连续变量的容器,python,pandas,Python,Pandas,我在熊猫中有以下数据帧 ID value 1 12.34 2 102.34 3 99.43 4 105 5 110 6 110.23 7 0 8 0.5 我想动态创建5个箱子,下面是我想要的数据帧 ID value bin 1 12.34 10-15 2 102.34 100-105 3 99.43 95-
ID value
1 12.34
2 102.34
3 99.43
4 105
5 110
6 110.23
7 0
8 0.5
我想动态创建5个箱子,下面是我想要的数据帧
ID value bin
1 12.34 10-15
2 102.34 100-105
3 99.43 95-100
4 105 105-110
5 110 110-115
6 110.23 110-115
7 0 0-5
8 0.5 0-5
我试过跟随,但不起作用
s1=((df.value//5)*5).min()
s2=((df.value//5+1)*5).max()
df['bin'] = pd.cut(df.value,np.arange(s1,s2+5,5))
但它不起作用 添加两个新参数-
标签
和right=False
,对于标签,请使用列表理解和zip
:
s1=((df.value//5)*5).min()
s2=((df.value//5+1)*5).max()
bins = np.arange(s1,s2+5,5)
labels = [f'{int(i)}-{int(j)}' for i, j in zip(bins[:-1], bins[1:])]
df['bin'] = pd.cut(df.value, bins=bins, labels=labels, right=False)
print (df)
ID value bin
0 1 12.34 10-15
1 2 102.34 100-105
2 3 99.43 95-100
3 4 105.00 105-110
4 5 110.00 110-115
5 6 110.23 110-115
6 7 0.00 0-5
7 8 0.50 0-5