Pandas でインデックス列を削除する方法 (例あり)


場合によっては、Python の pandas DataFrame からインデックス列を削除したい場合があります。

pandas DataFrame と Series には常にインデックスがあるため、実際にインデックスを削除することはできませんが、次のコードを使用してインデックスをリセットすることができます。

 df. reset_index (drop= True , place= True )

たとえば、文字インデックスを持つ次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#set index of DataFrame to be random letters
df = df. set_index ([pd. Index (['a', 'b', 'd', 'g', 'h', 'm', 'n', 'z'])])

#display DataFrame
df

        points assists rebounds
a 25 5 11
b 12 7 8
d 15 7 10
g 14 9 6
h 19 12 6
m 23 9 5
n 25 9 9
z 29 4 12

replace_index()関数を使用してインデックスをリセットし、番号の連続リストにすることができます。

 #reset indexes
df. reset_index (drop= True , place= True )

#display DataFrame
df

        points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

インデックスは 0 から 7 までの数字のリストになっていることに注意してください。

前述したように、インデックスは実際には列ではありません。したがって、 shapeコマンドを使用すると、DataFrame に (4 列ではなく) 8 行 3 列があることがわかります。

 #find number of rows and columns in DataFrame
df. shape

(8, 3)

ボーナス: インポートおよびエクスポート時にインデックスを削除します

CSV ファイルからデータフレームを読み取った後、パンダデータフレームのインデックスをリセットしたい場合があります。次のコードを使用すると、インポート時にインデックスをすばやくリセットできます。

 df = pd. read_csv ('data.csv', index_col= False )

また、次のコードを使用すると、エクスポート中にインデックス列が CSV ファイルに書き込まれないようにすることができます。

 df. to_csv ('data.csv', index= False )

追加リソース

Pandasで列をインデックスとして設定する方法
PandasでNaN値を含む行を削除する方法
Pandas DataFrame で値を並べ替える方法

コメントを追加する

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