#python #python-3.x #pandas
#python #python-3.x #pandas
Вопрос:
Вот мои данные
threats = pd.read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-08-18/threats.csv', index_col = 0)
И вот мой код —
df = (threats
.query('threatened>0')
.groupby(['continent', 'threat_type'])
.agg({'threatened':'size'}))
Однако результатом является df.columns
только Index(['threatened'], dtype='object')
. То есть отображается только столбец threatened, а не столбцы, которые я фактически сгруппировал, т.е. continent и threat_type, хотя они присутствуют в моем фрейме данных.
Я хотел бы выполнить операцию над столбцом continent моего фрейма данных, но он не отображается как один из столбцов. Например — continents = df.continent.unique()
. Эта команда выдает мне ключевую ошибку continent
не найдено.
Комментарии:
1. Вы
reset_index
?2. Да, я пробовал это
df = df.reset_index(drop=True)
. Ничего не делает.3. Не делайте
drop=True
. Это приведет к удалению тех столбцов groupby, которые находятся в индексе.
Ответ №1:
После groupby … pandas помещает столбцы groupby в индекс. Всегда сбрасывайте индекс после выполнения groupby в pandas и не выполняйте drop=True
.
После вашего кода.
df = df.reset_index()
И тогда вы получите требуемые столбцы.