我發現自己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個贊
我相信你需要過濾掉None
或NaN
通過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
添加回答
舉報
0/150
提交
取消