#python #grouping
#python #группировка
Вопрос:
У меня всего две недели опыта работы с Python, хотя моя проблема не так сложна, спасибо за вашу помощь. У меня есть фрейм данных из составляющих s amp; p 500. Я хотел бы упорядочить его по секторам.
Итак, как я могу выбрать тикер компаний, которые относятся, например, только к сектору здравоохранения? Пожалуйста, найдите образец моего фрейма данных ниже.
Я пытался с pd.groupby()
, но я могу выбрать только название столбцов.
Комментарии:
1. Каков ваш желаемый результат?
Ответ №1:
Как насчет использования ==
:
>>> df
Security Symbol SEC filings GICS Sector
0 Agilent Technologies Inc A reports Health Care
1 American Airlines Group AAL reports Industrials
2 Advance Auto Parts AAP reports Consumer Discretionary
3 Apple Inc. AAPL reports Information Technology
4 AbbVie Inc. ABBV reports Health Care
>>> df.loc[df['GICS Sector'] == 'Health Care']
Security Symbol SEC filings GICS Sector
0 Agilent Technologies Inc A reports Health Care
4 AbbVie Inc. ABBV reports Health Care
Комментарии:
1. Спасибо, это именно то, что я искал. Я попытался установить столбец сектора в качестве индекса и выполнить
df[df=="Health Care"]
. Но не сработало так, как ожидалось…2. Вы использовали
GICS Sector
, поскольку это название столбца в вашем примере?3. Решение, которое вы мне дали, работает отлично. Это дает мне желаемый результат. Однако до этого, когда я пробовал что-то сам, я делал следующее:
sp500 = pd.read_excel('SP500_Constituents_Updated.xlsx', index_col="GICS Sector")
, затемsp500[sp500=="Health Care"]
. Но не сработало так, как ожидалось..4.
sp500
это имя фрейма данных, поэтому вам нужно указать конкретный столбец в нем перед использованием==
.5. Да, правильно. Я не знаю, почему я думал, что, установив сектор GICS в качестве индекса, Python поймет. 🙂 Еще раз спасибо.