Полученный «логический ключ серии будет переиндексирован для соответствия индексу DataFrame» при создании нового фрейма данных - PullRequest
0 голосов
/ 01 апреля 2020

Есть ли потенциальные недостатки использования следующего кода для создания нового фрейма данных, в котором я указываю очень специфическую c информацию из исходного фрейма данных, которую я хочу видеть в новом фрейме данных.

df_workloc = (df[df['WorkLoc'] == 'Home'][df['CareerSat'] == 'Very satisfied'][df['CurrencySymbol'] == 'USD'][df['CompTotal'] >= 50000])

Я использовал данные опроса переполнения стека 2019 года. Таким образом:

WorkLo c указывает, где работает респондент.

CareerSat указывает на удовлетворенность работой респондента.

CurrencySymbol указывает, в какой валюте респондент получает деньги.

CompTotal указывает, какая сумма компенсации респонденту.

Если у кого-то есть более чистый и эффективный способ получения фрейма данных с уточненной / уточненной c информацией, я бы хотел его увидеть. Одна вещь, которую я хотел бы сделать, это указать сумму компенсации CompTotal из> = 50000 и <= 75000 в одной строке. Тем не менее, я получаю сообщение об ошибке, когда я пытался включить второй логический. </p>

Заранее спасибо.

1 Ответ

2 голосов
/ 01 апреля 2020

Я думаю, вам нужны цепочечные условия с & для побитового AND и фильтрацией по boolean indexing, также для последнего использования условия Series.between:

m1 = df['WorkLoc'] == 'Home'
m2 = df['CareerSat'] == 'Very satisfied'
m3 = df['CurrencySymbol'] == 'USD'
m4 = df['CompTotal'].between(50000, 75000)
df_workloc = df[m1 & m2 & m3 & m4]

Или для однострочного решения:

df_workloc = df[(df['WorkLoc'] == 'Home') &
                (df['CareerSat'] == 'Very satisfied') &
                (df['CurrencySymbol'] == 'USD') &
                 df['CompTotal'].between(50000, 75000)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...