Pandas dataframe で名前のない列を削除する方法


次の 2 つの方法を使用して、列名に「Unnamed」を含む pandas DataFrame の列を削除できます。

方法 1: データのインポート時に名前のない列を削除する

 df = pd. read_csv (' my_data.csv ', index_col= 0 )

方法 2: データのインポート後に名前のない列を削除する

 df = df. loc [:, ~df. columns . str . contains (' ^Unnamed ')]

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: データのインポート時に名前のない列を削除する

単純な pandas DataFrame を作成し、CSV ファイルにエクスポートするとします。

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [4, 4, 6, 8, 9, 5],
                    ' rebounds ': [12, 7, 8, 8, 5, 11]})

#view DataFrame
print (df1)

  team points rebounds
0 to 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

#export DataFrame to CSV file
df1. to_csv (' my_data.csv ')

ファイルを pandas DataFrame に読み取ろうとすると、最初の列の名前はUnnamed: 0になります。

 #import CSV file
df2 = pd. read_csv (' my_data.csv ')

#view DataFrame
print (df2)

   Unnamed: 0 team points rebounds
0 0 A 4 12
1 1 B 4 7
2 2 C 6 8
3 3 D 8 8
4 4 E 9 5
5 5 F 5 11

これを回避するには、 index_col=0を指定して、最初の列が実際にはインデックス列であることをパンダに伝えることができます。

 #import CSV file
df2 = pd. read_csv (' my_data.csv ', index_col= 0 )

#view DataFrame
print (df2)

  team points rebounds
0 to 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

例 2: データのインポート後に名前のない列を削除する

単純な pandas DataFrame を作成し、CSV ファイルにエクスポートするとします。

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [4, 4, 6, 8, 9, 5],
                    ' rebounds ': [12, 7, 8, 8, 5, 11]})

#export DataFrame to CSV file
df1. to_csv (' my_data.csv ')

次に、このファイルを pandas DataFrame にインポートするとします。

 #import CSV file
df2 = pd. read_csv (' my_data.csv ')

#view DataFrame
print (df2)

   Unnamed: 0 team points rebounds
0 0 A 4 12
1 1 B 4 7
2 2 C 6 8
3 3 D 8 8
4 4 E 9 5
5 5 F 5 11

名前に「Unnamed」を含む列を削除するには、次の構文を使用できます。

 #drop any column that contains "Unnamed" in column name
df2 = df2. loc [:, ~df2. columns . str . contains (' ^Unnamed ')]

#view updated DataFrame
print (df2)

  team points rebounds
0 to 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

「Unnamed: 0」列が DataFrame から削除されていることに注意してください。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas DataFrame の最初の行を削除する方法
Pandas DataFrame の最初の列を削除する方法
Pandasで重複した列を削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です