熊猫read_csv。换行前如何忽略定界符

时间:2019-12-13 17:48:41

标签: python pandas file

我正在读取带有数值的文件。

data = pd.read_csv('data.dat', sep=' ', header=None)

在文本文件中,每行以空格结尾,因此熊猫等待不存在的值,并在每行末尾添加“ nan”。 例如:

2.343 4.234

读取为: [2.343,4.234,nan]

我可以使用, usecols = [0 1]避免出现这种情况,但我希望使用更通用的解决方案

3 个答案:

答案 0 :(得分:3)

您可以在sep参数中使用正则表达式。

您可以要求它使用任意数量的空格作为分隔符,直到找到下一个值,而不是将分隔符指定为<​​em>一个空间。您可以使用正则表达式\s+

data = pd.read_csv('data.dat', sep='\s+', header=None)

答案 1 :(得分:0)

指定使用usecols读取的列将是一种更清洁的方法,或者您可以在读取数据后删除该列,但这会带来不必要的读取数据开销。通用方法将需要您创建一个正则表达式解析器,这将更加耗时且更加混乱。

答案 2 :(得分:0)

可以将csv文件中的分隔符更改为空格以外的其他内容吗?因为这可能是每行以nan结尾的原因。 如果您使用:

    data = pd.read_csv('data.dat', sep=',', header=None)

例如,可以解决此问题而不必清除数据。