我想在Pandas中将一个整数变量“重编码”成一个浮点变量。但这似乎并不像我想象的那样奏效。基本上我有一个1-6的比例,我想分配新的价值观。
我目前的做法是举一个例子:

df2 = pd.DataFrame({
    'A' : [1,2,3,4,5]
})

df2['B'] = df2['A'].replace([1, 2, 3, 4, 5], [1, 0.85, 0.70, 0.55, 0.40])

print df2

结果:
   A  B
0  1  1
1  2  0
2  3  0
3  4  0
4  5  0

做这件事的正确方法是什么?

最佳答案

>>> df2['A'].astype(float).replace([1, 2, 3, 4, 5], [1, 0.85, 0.70, 0.55, 0.40])
0    1.00
1    0.85
2    0.70
3    0.55
4    0.40
Name: A, dtype: float64

可能更合适的方法是使用pandas.Series.map()
>>> df2['A'].map(dict(zip([1, 2, 3, 4, 5], [1, 0.85, 0.70, 0.55, 0.40])))
0    1.00
1    0.85
2    0.70
3    0.55
4    0.40
Name: A, dtype: float64

关于python - Pandas -用浮点数替换整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20543360/

10-16 18:09