熊猫 - 用浮点数替换整数

时间:2013-12-12 12:18:09

标签: python pandas

我想在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

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

>>> 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
相关问题