在pandas中自定义分隔符read_csv

时间:2016-12-20 04:53:19

标签: python pandas separator

我正在将许多不同的数据文件读入各种pandas数据帧。这些数据文件中的列由空格分隔。但是,对于每个文件,空格的数量是不同的(对于其中一些,只有一个空间,对于其他空间,有两个空格,依此类推)。因此,每次导入文件时,我都必须手动转到该文件并查看已使用的空格数,并在sep中提供大量空格:

import pandas as pd
df = pd.read_csv('myfile.dat', sep = '    ')

有什么方法可以告诉大熊猫假设“任意数量的空格”作为分隔符?另外,有什么方法可以让pandas使用tab(\t)或空格作为分隔符?

4 个答案:

答案 0 :(得分:10)

是的,您可以使用简单的正则表达式(如sep='\s+')来表示一个或多个空格。

答案 1 :(得分:3)

您还可以使用参数skipinitialspace=True在任何分隔符后跳过前导空格。

答案 2 :(得分:2)

您可以直接使用delim_whitespace

import pandas as pd df = pd.read_csv('myfile.dat', delim_whitespace = 1 )

答案 3 :(得分:1)

我发现的一件事是你使用不支持的分隔符。 Pandas / Dask必须使用Python引擎而不是C引擎。这是一个很慢的交易。