从 Pandas 数据框中的列表中删除 NaN
Remove NaN from lists in Pandas dataframe
我有一个数据框,其值是包含 'nan' 的列表。有没有一种简单的 pythonic 方法可以从数据框中的列表中删除那些 'nan' 值?我已经定义了一个函数,其中 returns 一个没有 'nan' 的列表,但是我如何将它应用到数据框就地?
def remove_nan(input_list):
temp_list = [x for x in input_list if x!='nan']
return temp_list
test = ['nan', 'nan', 'SHM System', 'nan', 'nan', 'nan']
remove_nan(test)
['SHM System']
此函数适用于单个列表和 returns 干净列表,如上面的输出所示。我如何应用此函数,或者如果有更好的方法,从 dataframe 中的列表中删除所有 'nan' 值?我已经尝试过 applymap 和 apply 但没有用。
df_combined.applymap(remove_nan)
以下代码行对我有用。感谢@piRSquared。
df.applymap(lambda x: [*filter(pd.notna, x)])
我有一个数据框,其值是包含 'nan' 的列表。有没有一种简单的 pythonic 方法可以从数据框中的列表中删除那些 'nan' 值?我已经定义了一个函数,其中 returns 一个没有 'nan' 的列表,但是我如何将它应用到数据框就地?
def remove_nan(input_list):
temp_list = [x for x in input_list if x!='nan']
return temp_list
test = ['nan', 'nan', 'SHM System', 'nan', 'nan', 'nan']
remove_nan(test)
['SHM System']
此函数适用于单个列表和 returns 干净列表,如上面的输出所示。我如何应用此函数,或者如果有更好的方法,从 dataframe 中的列表中删除所有 'nan' 值?我已经尝试过 applymap 和 apply 但没有用。
df_combined.applymap(remove_nan)
以下代码行对我有用。感谢@piRSquared。
df.applymap(lambda x: [*filter(pd.notna, x)])