2016-12-20 4 views
2

私は多くの異なるデータファイルをさまざまなパンダのデータフレームに読み込んでいます。これらのデータファイルの列はスペースで区切られています。しかし、ファイルごとにスペースの数は異なります(その中にはスペースが1つしかなく、スペースが2つあります)。どのような方法があり、私ができることですパンダでセパレータをカスタマイズするread_csv

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

:したがって、私は、ファイルをインポートするたびに、私は手動でそのファイルにアクセスして、使用されているスペースの数を見るとsepにスペースのそれらの多くの数を与えなければなりませんセパレータとして「任意の数のスペース」を取るようにパンダに指示しますか?また、パンダにセパレータとしてタブ(\t)またはスペースのどちらかを使用するように指示する方法はありますか?

答えて

4

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

+0

を使用することができます!ありがとう。セパレータとしてスペースやタブを使用するようにパンダに指示する方法はありますか? – Peaceful

+1

空白はタブにもマッチするかもしれませんが、正規表現に条件を追加するだけでいいと思います: 'sep = \ s + | \ t +' –

+0

なぜpandasのドキュメントにこれが言及されていないのだろうか。 – Peaceful

3

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

1

あなたは直接働いdelim_whitespace

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

関連する問題