#python #pandas #dataframe
#питон #панды #фрейм данных
Вопрос:
Я хотел бы удалить некоторые столбцы фрейма данных и обнаружил, что это раздражает, вводя все имена столбцов. Я хотел бы использовать индексные номера столбцов вместо столбцов, чтобы удалить столбцы из фрейма данных. В следующем коде указаны все имена заголовков, но как также получить индексные номера?
import pandas as pd df=pd.read_csv("https://raw.githubusercontent.com/codebasics/py/master/ML/14_naive_bayes/titanic.csv") print(df.columns)
Ожидаемый Результат:
'PassengerId', 0 'Name', 1 'Pclass', 2 'Sex', 3 'Age', 4 'SibSp', 5 'Parch', 6 'Ticket', 7 'Fare', 8 'Cabin', 9 'Embarked', 10 'Survived', 11
Ответ №1:
Использовать pd.Series
с именами столбцов:
s = pd.Series(df.columns) print (s) 0 PassengerId 1 Name 2 Pclass 3 Sex 4 Age 5 SibSp 6 Parch 7 Ticket 8 Fare 9 Cabin 10 Embarked 11 Survived dtype: object
Как уже упоминалось @timgeb (спасибо), можно выбирать по позициям, а не по именам столбцов:
df['Name'] df.iloc[:, 1]
При необходимости удалите первые 2 столбца, используйте:
df = df.iloc[:, 2:]
Комментарии:
1. @jezrael Мне нужно, чтобы заголовок был таким, какой он есть. Просто мне нужно сгенерировать таблицу с индексными номерами, чтобы я мог удалить первые два столбца следующим кодом
df.drop(df.columns[[0, 1]], axis = 1)
. Поэтому мне нужны индексные номера столбцов.
Ответ №2:
Для печати как номера индекса, так и имени столбца можно использовать enumerate
:
gt;gt;gt; list(enumerate(df.columns))
Комментарии:
1. Спасибо! Это то, что я ищу.