在数据帧列 - 熊猫中应用'或'条件

sha*_*odh 3 python pandas

我要检查,如果任何dataframe行的列给定数目有任何一组值(不同的套不同的列),并分配boolean相应的-我想我可能需要的组合apply()any(),但不完全击中它正是:

所以,对于数据帧:

bank_dict = {'Name' : ['A', 'B', 'C', 'D', 'E'],
        'Type' :     ['Retail', 'Corporate', 'Corporate', 'Wholesale', 'Retail'],
        'Overdraft': ['Y', 'Y', 'Y', 'N', 'N'],
        'Forex': ['USD', 'GBP', 'EUR', 'JPY', 'GBP']}
Run Code Online (Sandbox Code Playgroud)

有真相清单:

truth_list = [bank_df['Type'].isin(['Retail']), bank_df['Overdraft'].isin(['Yes']), bank_df['Forex'].isin(['USD', 'GBP'])]
Run Code Online (Sandbox Code Playgroud)

结果df应如下所示:

  Name       Type Overdraft Forex  TruthCol
0    A     Retail         Y   USD         1
1    B  Corporate         Y   GBP         1
2    C  Corporate         Y   EUR         1
3    D  Wholesale         N   JPY         0
4    E     Retail         N   GBP         1
Run Code Online (Sandbox Code Playgroud)

谢谢,

jez*_*ael 5

我认为需要np.logical_or.reduce:

bank_df['TruthCol'] = np.logical_or.reduce(truth_list).astype(int)
print (bank_df)
  Name       Type Overdraft Forex  TruthCol
0    A     Retail         Y   USD         1
1    B  Corporate         Y   GBP         1
2    C  Corporate         Y   EUR         1
3    D  Wholesale         N   JPY         0
4    E     Retail         N   GBP         1
Run Code Online (Sandbox Code Playgroud)