[英]Get rows where all values are nan in one column
我想过滤 a 列中所有值都是 nan 的名称
这是我尝试过的
full.groupby('name')['opp'].isna().any(1)
但是这会返回错误消息:
AttributeError: Cannot access callable attribute 'isna' of 'SeriesGroupBy' objects, try using the 'apply' method
这是我的数据示例
name opp
f nan
f nan
g f
g nan
g nan
g nan
k nan
期望的输出是
name opp
f nan
f nan
k nan
使用GroupBy.transform
和GroupBy.all
测试每个组是否为True
(所有NaN
值)并通过boolean indexing
过滤:
df = full[full['opp'].isna().groupby(full['name']).transform('all')]
另一种方法是获取包含至少一个非缺失值的所有name
Series.isin
过滤原始 name 列:
df = full[~full['name'].isin(full.loc[full['opp'].notna(), 'name'])]
print (df)
name opp
0 f NaN
1 f NaN
6 k NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.