Как удалить столбец индекса в Pandas (с примерами)


Иногда вы можете захотеть удалить столбец индекса pandas DataFrame в Python.

Поскольку у pandas DataFrames и Series всегда есть индекс, вы не можете удалить индекс, но вы можете сбросить его, используя следующий фрагмент кода:

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

Например, предположим, что у нас есть следующий pandas DataFrame с индексом букв:

import pandas as pd

#create DataFrame
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

Мы можем использовать функцию reset_index() , чтобы сбросить индекс в последовательный список чисел:

#reset index
df.reset_index(drop= True , inplace= 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 имеет 8 строк и 3 столбца (в отличие от 4 столбцов):

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

(8, 3)

Бонус: удаление индекса при импорте и экспорте

Часто вам может понадобиться сбросить индекс кадра данных pandas после его чтения из файла CSV. Вы можете быстро сбросить индекс при его импорте, используя следующий фрагмент кода:

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

И вы можете убедиться, что столбец индекса не записывается в файл CSV при экспорте, используя следующий фрагмент кода:

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

Дополнительные ресурсы

Как установить столбец в качестве индекса в Pandas
Как удалить строки со значениями NaN в Pandas
Как сортировать значения в Pandas DataFrame