我要检查,如果任何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)
谢谢,
我认为需要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)