Python Pandas-用浮点数替换整数
我想在Pandas中将整数变量“重新编码”为浮点变量。但这似乎不像我预期的那样有效。基本上我有一个1-6的刻度,我想给它分配新的值 我目前的做法是举一个例子:Python Pandas-用浮点数替换整数,python,pandas,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
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
可能更合适的方法是使用:
可能更合适的方法是使用:
再次感谢!很好用!再次感谢!很好用!
>>> 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