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