以下のような列 A ~ G のデータ ファイルがありますが、これを読み取ると、理由もなく最後にpd.read_csv('data.csv')
余分な列が印刷されます。unnamed
colA ColB colC colD colE colF colG Unnamed: 7
44 45 26 26 40 26 46 NaN
47 16 38 47 48 22 37 NaN
19 28 36 18 40 18 46 NaN
50 14 12 33 12 44 23 NaN
39 47 16 42 33 48 38 NaN
データファイルを何度も見ましたが、他の列には余分なデータがありません。読み取り中にこの余分な列を削除するにはどうすればよいでしょうか? よろしくお願いします
ベストアンサー1
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
In [162]: df
Out[162]:
colA ColB colC colD colE colF colG
0 44 45 26 26 40 26 46
1 47 16 38 47 48 22 37
2 19 28 36 18 40 18 46
3 50 14 12 33 12 44 23
4 39 47 16 42 33 48 38
注記:多くの場合、名前のない列は 1 つだけでありUnnamed: 0
、これは CSV ファイルの最初の列です。これは、次の手順の結果です。
- DataFrameはパラメータを使用してCSVファイルに保存されます
index=True
。これはデフォルト行動 pd.read_csv()
このCSVファイルを明示的に指定せずにDataFrameに読み込みますindex_col=0
(デフォルトindex_col=None
:)
この列を削除する最も簡単な方法は、パラメータを指定することですpd.read_csv(..., index_col=0)
。
df = pd.read_csv('data.csv', index_col=0)