为了账号安全,请及时绑定邮箱和手机立即绑定

在 pandas 中删除 NA(ish?) 字段

在 pandas 中删除 NA(ish?) 字段

小怪兽爱吃肉 2023-12-29 15:24:46
我发现自己NA在 Pandas 的领域里遇到了很多困难。这是一个例子:audio =('all_audio_languages', lambda x: str(sorted({l.lower() for ls in x.dropna() for l in ls}))),AttributeError:“NoneType”对象没有属性“lower”现在,我认为这x.dropna()会删除所有 NA/None/等等。类型,但似乎它们仍然在那里。有没有一种方法可以基本上做一个“硬” dropna(),它摆脱所有会(bool)评估的东西False?示例数据(虽然它是一个很大的数据框,所以不确定下面是否包含有问题的数据):all_audio_languages['en']['en']['en']['LAS', 'en']['LAS', 'en']['en']['en'][]
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

我相信你需要过滤掉NoneNaN通过notna

f = lambda x: str(sorted({l.lower() for ls in x.dropna() for l in ls if pd.notna(l)}))


audio = ('all_audio_languages', f)

不容易测试,但我尝试了一下(功能已更改):


df = pd.DataFrame({'all_audio_languages':[['Las','LAS', 'en', None], ['en','LAS']]})

print (df)

    all_audio_languages

0  [Las, LAS, en, None]

1             [en, LAS]


f = lambda x: str(sorted({l.lower() for l in x if pd.notna(l)}))


print (df['all_audio_languages'].apply(f))

0    ['en', 'las']

1    ['en', 'las']

Name: all_audio_languages, dtype: object


查看完整回答
反对 回复 2023-12-29
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信