Я пытаюсь проанализировать данные опроса США, в частности, я пытаюсь определить, какие государства безопасны, маргинальны или плотны («близость»). У меня есть dataframe с результатами опроса по времени и их «близостью». Я использую это утверждение Pandas, чтобы получить краткое изложение записей «близости».Выбор строк из серии Pandas, где строки являются массивами
s=self.daily.groupby('State')['closeness'].unique()
Это дает мне эту серию (выбор, показанный для краткости):
State
AK [safe]
AL [safe]
CA [safe]
CO [safe, tight, marginal]
FL [marginal, tight]
IA [safe, tight, marginal]
ID [safe]
IL [safe]
IN [tight, safe]
Name: closeness, dtype: object
Строки массива типа, так что, например, s[0]
дает:
array(['safe'], dtype=object)
I Я пытаюсь выбрать из этой серии, но я не могу получить синтаксис правильно. Например, я пытаюсь выбрать только «безопасные» государства, используя следующий синтаксис:
ipdb> s[s == 'safe']
*** ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
это не работает либо:
test[test == ['safe'])
Вот что я хотел бы сделать: выбрать Государства, которые являются «маргинальными» или «жесткими», выбирают государства, которые являются «безопасными» и «безопасными» и т. Д. Кто-нибудь имеет представление о синтаксисе, который я должен использовать, или о лучшем подходе в первую очередь?
============ Вот пример данных перед GroupBy:
ipdb> self.daily.head(3)
Date Democratic share Margin Method Other share \
0 2008-11-04 0.378894 -0.215351 Election 0.026861
1 2008-11-04 0.387404 -0.215765 Election 0.009427
2 2008-11-04 0.388647 -0.198512 Election 0.024194
Republican share State closeness winner
0 0.594245 AK safe Republican
1 0.603169 AL safe Republican
Вы можете разместить образец данных перед тем, как делать 'groupby'. – shivsn
Спасибо shivsn - добавленный образец вопроса –