Вы можете использовать следующие два метода, чтобы удалить столбец в 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