如何使用现有列在熊猫中创建新列?

时间:2020-10-06 13:47:50

标签: python pandas

我对Python很陌生,我正在尝试使用pre-exisitng列在熊猫df中创建一列(下面的代码)。

NET::ERR_CERT_INVALID

但是,我不断遇到以下错误:

ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

当我添加'.any()'时,它仍然无法按需执行。 我完全同意吗?

1 个答案:

答案 0 :(得分:0)

df = pd.DataFrame( {'a': [-1, 1, 1, -1], 'b': [1, 1, -1, -1]})

df['c'] = 0
df.loc[(df['a'] != -1) & 
       (df['b'] == -1), 'c'] = df[(df['a'] != -1) & (df['b'] == -1)]['a'] 

df.loc[(df['a'] == -1) & 
       (df['b'] != -1), 'c'] = df[(df['a'] == -1) & (df['b'] != -1)]['b'] 

print (df)

输出:

   a  b  c
0 -1  1  1
1  1  1  0
2  1 -1  1
3 -1 -1  0

OR

df['c'] = df.apply(lambda r: 
                   r['a'] if r['a'] != -1 and r['b'] == -1 else (
                       r['b'] if r['a'] == -1 and r['b'] != -1 else 0), 
                   axis=1)