【发布时间】:2021-07-20 15:57:41
【问题描述】:
我有多个数据帧,我想在其上运行这个函数,它主要从数据帧中删除不必要的列并返回一个数据帧:
def dropunnamednancols(df):
"""
Drop any columns staring with unnamed and NaN
Args:
df ([dataframe]): dataframe of which columns to be dropped
"""
#first drop nan columns
df = df.loc[:, df.columns.notnull()]
#then search for columns with unnamed
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
return df
现在我遍历数据框列表:[df1, df2, df3]
dfsublist = [df1, df2, df3]
for index in enumerate(dfsublist):
dfsublist[index] = dropunnamednancols(dfsublist[index])
虽然 dfsublist 的项目已更改,但原始数据帧 df1、df2、df3 仍然保留不必要的列。我怎样才能做到这一点?
【问题讨论】:
-
如果你的dfs量少,可以试试
df1, df2, df3 = [dropunnamednancols(df) for df in dfsublist]。 -
这是一个很好的提示。我通过 dfsublist = [dropunnamednancols(df) for df in dfsublist] 尝试了列表理解,这当然没有成功。谢谢