繁体   English   中英

熊猫根据缺失值的条件逻辑添加新列

[英]pandas add new column based on conditional logic of missing values

我有一个这样的熊猫数据框:

aa bb   cc dd ee
a  a    b  b  foo
a  b    a  a  foo
b  nan  a  a  bar
b  b    b  b  bar

我想创建一个新列df['ff']例如:

aa bb   cc dd ee   ff
a  a    b  b  foo  c
a  b    a  a  foo  c
a  nan  a  a  bar  d
a  b    b  b  bar  c

逻辑是: if df['bb'] is not null and df['aa']==a, then c else d

根据其他问题的答案,我认为答案应该是这样的:

df['ff'] = df.apply(lambda x: x['bb'].isnull(),axis=1) & (x['aa']=='a')

但我收到这样的错误:

("'str' object has no attribute 'isnull'", 'occurred at index 0')

我将使用以下矢量化方法:

In [47]: df['ff'] = np.where(df['bb'].notnull() & df['aa'].eq('a'), 'c', 'd')

In [48]: df
Out[48]:
  aa   bb cc dd   ee ff
0  a    a  b  b  foo  c
1  a    b  a  a  foo  c
2  b  NaN  a  a  bar  d
3  b    b  b  b  bar  d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM