使用 pandas.read_csv 的十进制参数

问题描述 投票:0回答:1

我有一个包含 19 列的 CSV。许多值都是小数,格式如“56,2”[德语/欧洲格式]。没什么大问题,我想使用“decimal=”参数:

self.imported_csv = pd.read_csv(full_path, encoding='utf_16_le', sep=';', on_bad_lines='warn', decimal=',')

工作正常 - 除了一列。因此,所有其他列都可以正确读取(浮动),但 ONE 列保留“,”作为小数分隔符。知道为什么这是可能的吗?

不知道为什么,我尝试了以下解决方法:

self.imported_csv['Luftdruck (hPa)'] = self.imported_csv['Luftdruck (hPa)'].astype(float)

...不幸的是我已经预料到了结果:无法将字符串转换为浮点数:'979,5'。

知道我在这里面临什么问题吗?预先感谢。

以下是 CSV 的一个示例行:

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

该列中很可能有一些字符串值,我会检查诸如“NAN”之类的内容或其他不会被解析的内容。

我会尝试以下方法,看看是否有效

imported_csv['Luftdruck (hPa)'] = imported_csv['Luftdruck (hPa)'].str.replace(",",".").astype(float)

否则检查列中是否有不可解析的值,例如实际字符串。

© www.soinside.com 2019 - 2024. All rights reserved.