我正在从S3读取一个包含空值的字符串列的csv.gz文件。一旦我使用pandas.read_csv()方法读取了该文件,
pandas.read_csv(io.BytesIO(csv_data['Body'].read()), sep='|',compression='gzip',
engine='python', error_bad_lines=False, warn_bad_lines=True,
encoding='iso-8859-1',
escapechar='\\',
quoting=1)我正在获取数据帧中的NaN值,而不是问题的字符串column.Couple中的空/空白。
i) NaN是否适用于类型为object的地方?
ii) NaN是否仅适用于数字(整数、浮点数)而不适用于字符串
任何帮助都将不胜感激。谢谢。下面是我得到的输入和实际输出。
输入:
"Obj_ID"|"Value"|"TimeStamp"\n
"ID-1"|"val"| "2020-03-12 00:00:00"
"ID-2"|"v"| "2020-03-12 00:00:00"
"ID-3"|"value-3"| "2020-03-12 00:00:00"
"ID-4"|"value-4"| "2020-03-12 00:00:00"
"ID-5"|""| "2020-03-12 00:00:00"实际输出:
Obj_ID Value TimeStamp
0 ID-1 val "2020-03-12 00:00:00"
1 ID-2 v "2020-03-12 00:00:00"
2 ID-3 value-3 "2020-03-12 00:00:00"
3 ID-4 value-4 "2020-03-12 00:00:00"
4 ID-5 NaN "2020-03-12 00:00:00"在不处理数据帧的情况下所需的输出应为:
Obj_ID Value TimeStamp
0 ID-1 val "2020-03-12 00:00:00"
1 ID-2 v "2020-03-12 00:00:00"
2 ID-3 value-3 "2020-03-12 00:00:00"
3 ID-4 value-4 "2020-03-12 00:00:00"
4 ID-5 '' "2020-03-12 00:00:00"发布于 2020-04-03 00:24:59
来自read_csv上的pandas documentation:
na_values:标量、字符串、类似列表或字典,可选
要识别为NA/NaN的其他字符串。如果dict通过,则为特定的每列NA值。默认情况下,以下值被解释为NaN:‘’,...
这就解释了为什么空字符串被解释为NaN。
keep_default_na:布尔值,默认为真
分析数据时是否包含默认NaN值。根据是否传入了na_values,行为如下:...
如果keep_default_na为False,并且未指定na_values,则不会将任何字符串解析为NaN。
因此,只需将keep_default_na=False作为参数添加到read_csv中,就可以满足您的需要。
https://stackoverflow.com/questions/60865448
复制相似问题