2017-07-15 4 views
2

ヘッダーのない列を持つCSVファイルを読み込もうとしています。現在のところ、私のソリューションはヘッダーを持たない列を取り除く

df = pd.read_csv("test.csv") 
df = df[[col for col in df.columns if 'Unnamed' not in col]] 

です。これはちょっとハックされていて、ファイルに「無名」という文字列が含まれていると失敗します。これを行うより良い方法はありますか?

+0

これはすでにかなり良い解決策だと思います。それをやや頑強にしたい場合は、 'if 'col' not in col'を' col.startswith( '無名:') 'と置き換えることができます。 – Xukrao

答えて

1

これらの列の名前を最初に変更できますか?

まだまだかなりハッキリですが、少なくともこれは「無名:」で始まる文字列を ''で置き換えてからフィルタリングします。

1

read_csv関数の引数のusecolsは、入力として呼び出し可能な関数を受け入れます。望ましくない列見出しのためにFalseと評価される関数を指定すると、これらの列は削除されます。

func = lambda x: not x.startswith('Unnamed: ') 
df = pd.read_csv('test.csv', usecols=func) 

このソリューションは、元のソリューションとは根本的に違いないと思います。

関連する問題