我想將字符串(%)轉換爲float.but我的方法沒有效果。 結果與正確的數字略有不同。 例如,如何將字符串轉換爲數字python
a=pd.Series(data=["0.1%","0.2%"])
0 0.1%
1 0.2%
dtype: object
第一,我剝 「%」
a.str.rstrip("%")
0 0.1
1 0.2
dtype: object
我試圖轉換爲數值,但結果是奇怪。
我想這個現象來自二進制數字系統...
pd.to_numeric(a.str.rstrip("%"))
0 0.10000000000000000555
1 0.20000000000000001110
dtype: float64
,當然我不能轉換%至數字。
pd.to_numeric(a.str.rstrip("%"))/100
0 0.00100000000000000002
1 0.00200000000000000004
dtype: float64
我也試過.astype(float)方法。但結果相同..
爲什麼會發生這種現象?以及如何避免這種現象
你只是想要它很好地顯示?看看'pd.options.display.float_format'。以上是浮動的預期行爲(請參閱http://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples) – AChampion
感謝您的回覆我想處理巨大的數量,如預算計算。我遇到了一些關於這種計算的麻煩......所以我想精確計算。通過使用這個選項,我可以避免這種麻煩嗎? – Heisenberg