比较在熊猫数据框中返回错误的结果

时间:2019-08-21 05:12:07

标签: python-3.x pandas apply

在比较“ 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

0 个答案:

没有答案