将奇怪的字符串csv导入为float

问题描述 投票:0回答:1
U_d = pd.read_csv("Uzud.csv", decimal = ',')
print(U_d)

结果:

     f in kHz  U in mV  Amplitude in Vpp  entfernung in cm
43.7       52        1               5.0               9.0
43.7       43        5              11.0               NaN
43.7       30        5              13.0               NaN
43.7     27,5        5              15.0               NaN
43.7       24        5              16.0               NaN

(请注意,“U in mV”中的值 27.5 是 27,5,并被解释为字符串)

在所有列中,所有数据实际上都是浮点数,但不幸的是它是这样存储的:

f in kHz,U in mV,amplitude in Vpp,distance in cm
"43,7",52,1,5,9
"43,7",43,5,11
"43,7",30,5,13
"43,7", "27,5",5,15
"43,7",24,5,16

这会导致“U in mV”中的一些数据被解释为字符串。我希望所有内容都存储为浮点数

我希望它将字符串转换为浮点数

python pandas csv read-csv
1个回答
0
投票

使用

skipinitialspace=True

import pandas as pd
from io import StringIO

s = """f in kHz,U in mV,amplitude in Vpp,distance in cm
"43,7",52,1,5,9
"43,7",43,5,11
"43,7",30,5,13
"43,7", "27,5",5,15
"43,7",24,5,16
"""

pd.read_csv(StringIO(s), decimal=',', skipinitialspace=True)

      f in kHz  U in mV  amplitude in Vpp  distance in cm
43.7      52.0        1                 5             9.0
43.7      43.0        5                11             NaN
43.7      30.0        5                13             NaN
43.7      27.5        5                15             NaN
43.7      24.0        5                16             NaN
© www.soinside.com 2019 - 2024. All rights reserved.