Две условные проверки внутри доступа к фрейму данных Panda - PullRequest
0 голосов
/ 21 ноября 2018

Команда ниже работает нормально

idx = np.asarray(df.loc[df['lat1'] != '.'].ix[:,0].index)

, но я пытаюсь сделать что-то вроде этого (с 2 условиями):

idx = np.asarray(df.loc[df['lat1'] != '.' and df['state'] == df['state'][0]].ix[:,0].index)

Это приводит к следующей трассировке:

Traceback (most recent call last):

  File "<ipython-input-274-c07cda0be195>", line 1, in <module>
    idx = np.asarray(df.loc[df['lat1'] != '.' and df['state'] == df['state'][0]].ix[:,0].index)

  File "/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py", line 1573, in __nonzero__
    .format(self.__class__.__name__))

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Я посмотрел, но не смог найти подходящую настройку для этого случая.Любые выводы будут оценены.

[РЕДАКТИРОВАТЬ]: На основании приведенного ниже предложения, когда я пытаюсь это сделать:

df[(df['lat1']!='.') & (df['state']== df['state'][0])]

Я получаю

        lat1    long1          ...          state                county
5    34  11          ...             AK             Anchorage
7    1 -3          ...             AK             Anchorage
14   1 -5          ...             AK             Anchorage
30   7 -3          ...             AK             Anchorage
44   1 -4          ...             AK             Anchorage
47   1 -3          ...             AK             Anchorage
75   1 -4          ...             AK                Juneau
82    5 -1          ...             AK       Kenai Peninsula
102  4 -1          ...             AK  Fairbanks North Star
106  4 -1          ...             AK     Matanuska Susitna
137  3 -3          ...             AK     Matanuska Susitna

[11 rows x 5 columns]

Как извлечь только первый столбец, содержащийиндексы?

1 Ответ

0 голосов
/ 21 ноября 2018

Я почти уверен, что этот вопрос уже где-то задавался ... Но с пандами вы можете смотреть на два условия, как это.

df[(df['lat1']!='.') & (df['state']== df['state'][0])]

Вы должны выполнять побитовые операции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...