我对Python很陌生,我正在尝试使用pre-exisitng列在熊猫df中创建一列(下面的代码)。
NET::ERR_CERT_INVALID
但是,我不断遇到以下错误:
ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
当我添加'.any()'时,它仍然无法按需执行。 我完全同意吗?
答案 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)