在比较“ ibeaconUuid”和“ rawData”列时,非零列应作为“有效载荷”列返回。
ip_dict = {'ibeaconUuid': ['0', 'E245F67', '0', '0'],
'rawData': ['5F67E24',0,'5F67E24',0],
'mac': ['A', 'B', 'C' , 'D']}
ip_df = pd.DataFrame(ip_dict)
ip_df['payload_data'] = ip_df.apply(lambda x : x['ibeaconUuid'] if
x['ibeaconUuid'] != 0 else x['rawData'] if
x['rawData'] != 0 else 0, axis=1)
,上面的表达式返回为
ibeaconUuid rawData mac payload_data
0 0 5F67E24 A 0
1 E245F67 0 B E245F67
2 0 5F67E24 C 0
3 0 0 D 0
我需要的结果是
ibeaconUuid rawData mac payload_data
0 0 5F67E24 A 5F67E24
1 E245F67 0 B E245F67
2 0 5F67E24 C 5F67E24
3 0 0 D 0