替换数据集Pandas Python中的值

时间:2017-09-18 05:24:31

标签: python pandas dataframe dataset

我的数据集是......

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文件???

1 个答案:

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