我的数据集是......
value
0.486903
0.520908
0.530904
0.483284
0.475935
0.502831
0.541743
0.566318
0.500073
0.510959
0.546008
0.551682
0.534396
0.501554
0.541277
我想在我的数据集中替换这些值,请提供所需的pyhton代码?
类别: 0.470000-0.500000 = 1,5500001-0.530000 = 2,0.530001-0.56000 = 3
请提及如何将修改后的数据写回csv文件???
答案 0 :(得分:0)
使用cut
。另外还为0.47
及.56
以下的值添加了2个其他组,因为样本数据中的值为0.566318
。
bins = [-np.inf, .47, 0.5, .53, .56, np.inf]
labels=[0,1,2,3,4]
df['label'] = pd.cut(df['value'], bins=bins, labels=labels)
print (df)
value label
0 0.486903 1
1 0.520908 2
2 0.530904 3
3 0.483284 1
4 0.475935 1
5 0.502831 2
6 0.541743 3
7 0.566318 4
8 0.500073 2
9 0.510959 2
10 0.546008 3
11 0.551682 3
12 0.534396 3
13 0.501554 2
14 0.541277 3
Numpy解决方案:
bins = [-np.inf, .47, 0.5, .53, .56, np.inf]
df['label'] = np.array(bins).searchsorted(df['value']) - 1
print (df)
value label
0 0.486903 1
1 0.520908 2
2 0.530904 3
3 0.483284 1
4 0.475935 1
5 0.502831 2
6 0.541743 3
7 0.566318 4
8 0.500073 2
9 0.510959 2
10 0.546008 3
11 0.551682 3
12 0.534396 3
13 0.501554 2
14 0.541277 3
to_csv
的最后一次写入csv
:
df.to_csv('myfile', index=False)