首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用现有栏目在大熊猫中创建新栏目?

问如何利用现有栏目在大熊猫中创建新栏目?
EN

Stack Overflow用户
提问于 2020-10-06 13:47:50
回答 1查看 47关注 0票数 1

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

代码语言:javascript
复制
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()‘时,它仍然没有按需要执行。我真的不干了吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-06 13:55:00

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
   a  b  c
0 -1  1  1
1  1  1  0
2  1 -1  1
3 -1 -1  0

或

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64227170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档