ヘッダーのない列を持つCSVファイルを読み込もうとしています。現在のところ、私のソリューションはヘッダーを持たない列を取り除く
df = pd.read_csv("test.csv")
df = df[[col for col in df.columns if 'Unnamed' not in col]]
です。これはちょっとハックされていて、ファイルに「無名」という文字列が含まれていると失敗します。これを行うより良い方法はありますか?
ヘッダーのない列を持つCSVファイルを読み込もうとしています。現在のところ、私のソリューションはヘッダーを持たない列を取り除く
df = pd.read_csv("test.csv")
df = df[[col for col in df.columns if 'Unnamed' not in col]]
です。これはちょっとハックされていて、ファイルに「無名」という文字列が含まれていると失敗します。これを行うより良い方法はありますか?
これらの列の名前を最初に変更できますか?
まだまだかなりハッキリですが、少なくともこれは「無名:」で始まる文字列を ''で置き換えてからフィルタリングします。
read_csv
関数の引数のusecols
は、入力として呼び出し可能な関数を受け入れます。望ましくない列見出しのためにFalse
と評価される関数を指定すると、これらの列は削除されます。
func = lambda x: not x.startswith('Unnamed: ')
df = pd.read_csv('test.csv', usecols=func)
このソリューションは、元のソリューションとは根本的に違いないと思います。
これはすでにかなり良い解決策だと思います。それをやや頑強にしたい場合は、 'if 'col' not in col'を' col.startswith( '無名:') 'と置き換えることができます。 – Xukrao