我想在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
这样做的正确方法是什么?
答案 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