web-dev-qa-db-ja.com

pandas read_csvのセパレーターのカスタマイズ

多くの異なるデータファイルをさまざまなpandasデータフレームに読み込んでいます。これらのデータファイルの列はスペースで区切られています。ただし、ファイルごとにスペースの数が異なります(一部の場合、つまり、ファイルをインポートするたびに、そのファイルに手動で移動して、使用されたスペースの数を確認し、その数を与える必要があります。 sepのスペース:

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

pandasに区切り文字として「任意の数のスペース」を想定する方法はありますか?また、pandasを使用する方法はありますか?いずれかのタブ(\t)または区切り文字としてスペース?

13
Peaceful

はい、sep='\s+'のような単純な正規表現を使用して、1つ以上のスペースを示すことができます。

12
Ted Petrou

パラメータskipinitialspace=Trueを使用して、区切り文字の後の先頭のスペースをスキップすることもできます。

3
piRSquared

Delim_whitespaceを直接使用できます

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

2
nlahri

サポートされていないセパレータを使用すると、私が見つけたものの1つです。 Pandas/Daskは、Cエンジンの代わりにPythonエンジンを使用する必要があります。これはかなり遅いです。

1
Dustin Williams