python - 读取csv后pandas列中的不同类型
问题描述
我正在阅读 .csv 文件,列的一些条目被识别为字符串,而一些被识别为浮点数(即使它们都具有相同的格式!!!)我正在使用以下代码:
df = pd.read_csv( "data.csv", usecols = range(0,21), sep =';', decimal=',')
df[df.columns[0:21]] = df[df[0:21]].convert_objects(convert_numeric=True)
这里 col1 的输出:
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
...
164686 22.847412
164687 22.804832
164688 22.561518
在我尝试转换它们之后,所有被识别为字符串的类型现在都是“NaN”类型。对我来说,这似乎是一个 python 错误,因为它们具有完全相同的格式。这里有几行 .vsc 文件
Col1 Col1 Col3
1 23,13854599;10,99679279;0;41,40728378;
2 23,24945831;10,96249676;0;41,54985428;
3 23,16853714;11,24223709;0;40,13756943;
4 23,0876255;10,66694546;0;40,24223328;
5 23,05908775;11,06436825;0;40,91619873;
...
164686 22,84741211;11,84464455;8,786539078;
164687 22,80483246;12,12989521;8,778803825;
164688 22,56151772;12,29102707;8,908541679;
同时我真的很绝望!重要的是要知道,我仅限于 pandas 0.16.2,因此我不能使用诸如 to_numeric 之类的方法。
非常感谢您的帮助
编辑:直接类型转换的示例
df = pd.read_csv( "data.csv", sep =';', usecols = range(0,21), dtype = {'Col1' : float, 'Col2' : float})
解决方案
您可以在使用参数读取 CSV 时指定列类型dtype
:
https://pandas.pydata.org/pandas-docs/version/0.16/generated/pandas.read_csv.html
推荐阅读
- entity-framework - 不支持 Azure 部署实体框架连接字符串关键字:“元数据”
- c++ - 关于 char 数组,我正在尝试将数组中的每个字符分配给另一个值
- html - 移动设备的引导顶部菜单不起作用
- c++ - C ++为“系统”函数错误组合字符串
- python - 解析电子邮件文本的标题
- swift - 使用 swift 代码从 firebase 数据库中获取所有 uid
- scala - 相似键的两个 RDD 列表中的 for 循环
- php - Composer 包认为我使用的是旧版本的 PHP (OSX)
- python - 无论如何将python期货放入fifo?
- cmd - 命令行管道以匹配输出的第一行