我对Python非常陌生,我正在尝试使用预exisitng列(下面的代码)在我的熊猫df中创建一个列。
if ((df['a'] != -1) & (df['b'] == -1)):
df['c'] = df['a']
elif ((df['a'] == -1 ) & (df['b'] != -1)):
df['c'] = df['b']
else:
df['c'] = 0但是,我一直收到以下错误:
ValueError:系列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。
当我添加'.any()‘时,它仍然没有按需要执行。我真的不干了吗?
发布于 2020-10-06 13:55:00
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或
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)https://stackoverflow.com/questions/64227170
复制相似问题