熊猫列值基于另一个列的通过或失败

时间:2020-08-02 03:15:32

标签: python pandas

我有一个数据框:

df_house = 
    house_id    test    result
0   House1  door    Pass
1   House1  window  Pass
2   House1  roof    Pass
3   House2  door    Pass
4   House2  window  fail
5   House2  roof    pass

我想创建一个摘要df:

df_summary = 
    house_id    test_summary
0   House1  Pass
1   House2  Fail
  • 我该如何在熊猫里做到这一点?
  • 请注意,如果所有测试均为通过且不区分大小写,则结果为通过。因此,通过,通过,通过等任何值都应计为通过。

答案:

df_house['result'].str.lower().eq('pass').groupby(df_house['house_id']).all().map({True:'Pass',False:'Fail'}).reset_index()

1 个答案:

答案 0 :(得分:1)

我们可以用groupbyall

df = df['result'].eq('Pass').groupby(df['house_id']).all().map({True:'Pass',False : 'fail'}).reset_index()
Out[117]: 
  house_id result
0   House1   Pass
1   House2   fail