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


Вы можете использовать следующие два метода, чтобы удалить столбец в pandas DataFrame, который содержит «Без имени» в имени столбца:

Способ 1: удалить безымянный столбец при импорте данных

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

Способ 2: удалить безымянный столбец после импорта данных

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

В следующих примерах показано, как использовать каждый метод на практике.

Пример 1. Удаление безымянного столбца при импорте данных

Предположим, мы создаем простой DataFrame pandas и экспортируем его в файл CSV:

import pandas as pd

#create DataFrame
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 A 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, первый столбец имеет имя Безымянный: 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 , чтобы сообщить pandas, что первый столбец на самом деле является столбцом индекса:

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

#view DataFrame
print(df2)

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

Пример 2. Удаление безымянного столбца после импорта данных

Предположим, мы создаем простой DataFrame pandas и экспортируем его в файл CSV:

import pandas as pd

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

Теперь предположим, что мы импортируем этот файл в DataFrame pandas:

#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

Чтобы удалить столбец, который содержит «Безымянный» в имени, мы можем использовать следующий синтаксис:

#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 A 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

Обратите внимание, что столбец «Без имени: 0» был удален из DataFrame.

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

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Как удалить первую строку в Pandas DataFrame
Как удалить первый столбец в Pandas DataFrame
Как удалить повторяющиеся столбцы в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.