выбрать столбцы на основе нескольких условий в Pandas - PullRequest
2 голосов
/ 08 марта 2019

Как перевести оператор SQL в Pandas:

select PolicyNumber, 
       Coverage 
  from  ClaimsData 
  where AccidentState = 'AZ' and Coverage = 'Liability'

Я знаю, как выбирать столбцы для одного условия (AccidentState = 'AZ'), но как я могу добавить другое условие?

ClaimsData[["PolicyNumber","Coverage","AccidentState"]] [ClaimsData["AccidentState"]=="AZ"]  # and here I need to add another condition

1 Ответ

5 голосов
/ 08 марта 2019

Вы можете объединить условия по & для побитового AND и отфильтровать по DataFrame.loc строк по условиям (boolean indexing) и столбцам по именам столбцов в list:

mask = (ClaimsData["AccidentState"]=="AZ") & (ClaimsData["Coverage"]=="Liability")
df = ClaimsData.loc[mask, ["PolicyNumber","Coverage"]]

Как @Sandeep Kadapa указал в комментариях, есть альтернатива с DataFrame.query:

q = "AccidentState == 'AZ' & Coverage == 'Liability'"
df = ClaimsData.query(q)[["PolicyNumber","Coverage"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...