根据Pandas中的多个条件选择列

Ser*_*dia 2 python dataframe pandas

如何将SQL语句转换为Pandas:

select PolicyNumber, 
       Coverage 
  from  ClaimsData 
  where AccidentState = 'AZ' and Coverage = 'Liability'
Run Code Online (Sandbox Code Playgroud)

我知道如何为单个条件选择列(AccidentState ='AZ'),但是如何添加另一个条件?

ClaimsData[["PolicyNumber","Coverage","AccidentState"]] [ClaimsData["AccidentState"]=="AZ"]  # and here I need to add another condition
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

您可以&按条件按条件链接条件,AND并按DataFrame.loc条件(boolean indexing)按行过滤,按列名称按列过滤list

mask = (ClaimsData["AccidentState"]=="AZ") & (ClaimsData["Coverage"]=="Liability")
df = ClaimsData.loc[mask, ["PolicyNumber","Coverage"]]
Run Code Online (Sandbox Code Playgroud)

就像@Sandeep Kadapa在评论中指出的那样,还有其他选择DataFrame.query

q = "AccidentState == 'AZ' & Coverage == 'Liability'"
df = ClaimsData.query(q)[["PolicyNumber","Coverage"]]
Run Code Online (Sandbox Code Playgroud)