我正在将许多不同的数据文件读入各种pandas数据帧。这些数据文件中的列由空格分隔。但是,对于每个文件,空格的数量是不同的(对于其中一些,只有一个空间,对于其他空间,有两个空格,依此类推)。因此,每次导入文件时,我都必须手动转到该文件并查看已使用的空格数,并在sep
中提供大量空格:
import pandas as pd
df = pd.read_csv('myfile.dat', sep = ' ')
有什么方法可以告诉大熊猫假设“任意数量的空格”作为分隔符?另外,有什么方法可以让pandas使用tab(\t
)或空格作为分隔符?
答案 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引擎。这是一个很慢的交易。