從 excel 我有一個以下型別的數字:“22.024.833,02”,所以我一直在嘗試 .strip()、.replace() 等,但我無法從我的代碼中獲得浮點數。
for columna, fila in mav.iterrows():
comitente = fila['Comit.']
moneda = fila['Especie']
m = fila['Operado'].strip()
m2 = m.replace('.', '')
monto = float(m2)
結果:monto = float(m2) ValueError:無法將字串轉換為浮點數:'22024833,02'
uj5u.com熱心網友回復:
我的回答是假設您使用的.是數字分隔符和,小數點。
m = fila['Operado'].strip() # m = "22.024.833,02"
m = m.replace('.', '') # m = "22024833,02"
m = m.replace(',', '.') # m = "22024833.02"
monto = float(m) # monto = 22024833.02
Pythonfloat不需要數字分隔符(.在您的示例中),并且小數點是 a .(而不是,您輸入中的 a)。
uj5u.com熱心網友回復:
我想這就是你要找的
m = float(fila['Operado'].strip().replace(".","").replace(",","."))
最好.用于小數位和,整數部分。
uj5u.com熱心網友回復:
在 Python 中,您應該使用.而不是,作為小數點分隔符。
good_float = 1.44
not_a_float = 1,22 # This will be stored as a tuple
如果您的輸入字串是用,十進制分隔符撰寫的,則可以使用String.replace()方法。
>>> '3,14'.replace(',', '.')
'3.14'
如果您還.用作數字分隔符,則可以用相同的方法替換它。
>>> '1.203,14'.replace('.', ' ').replace(',', '.')
'1203,14'
然后,您可以使用float內置函式將字串精細地轉換為浮點數。
>>> float('3,14'.replace('.', ' ').replace(',', '.'))
3.14
記住總是寫.replace('.', ' ')之前,.replace(',', '.')以避免亂七八糟的句號。
您的代碼現在應該可以作業了:
>>> float(fila['Operado'].strip().replace('.', ' ').replace(',', '.'))
uj5u.com熱心網友回復:
你可以試試這個:
for columna, fila in mav.iterrows():
comitente = fila['Comit.']
moneda = fila['Especie']
m = fila['Operado'].strip()
m2 = m.replace('.', '').replace(',', '.')
monto = float(m2)
更緊湊的解決方案:
for columna, fila in mav.iterrows():
comitente = fila['Comit.']
moneda = fila['Especie']
monto = float(fila['Operado'].strip().replace('.', '').replace(',', '.'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391220.html
標籤:Python
上一篇:Julia中的Sobel算子
