【发布时间】:2021-06-14 10:23:45
【问题描述】:
我有一个数据框,其值是包含“nan”的列表。是否有一种简单且 Python 的方法可以从数据框中的列表中删除这些“nan”值?我已经定义了一个函数,它返回一个没有“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']
此函数适用于单个列表并返回干净列表,如上面的输出所示。如何应用此功能,或者如果有更好的方法,从dataframe 的列表中删除所有“nan”值?我试过 applymap 和 apply 但没用。
df_combined.applymap(remove_nan)
【问题讨论】:
-
显示你那段没用的代码...How to Askminimal reproducible example
-
这就是我所做的:df_combined.applymap(remove_nan) 它没有改变数据框。
-
df.applymap(lambda x: [*filter(pd.notna, x)]) -
你试过
df_combined = df_combined.applymap(remove_nan)吗? applymap 方法不会修改原始 DataFrame,除非您将其设置为等于返回的内容 -
@DerekO 是的,我可以看到这个数据框的副本,它是一样的。没有改变。
标签: python pandas dataframe nan python-applymap