擅长:python、mysql、java
<p>如果我理解正确,您希望将一个函数分别应用于多个数据帧</p>
<p>基线问题是,在函数中,您返回一个新的数据帧,并用新的数据帧替换列表中存储的数据帧,而不是修改旧的原始数据帧</p>
<p>如果要修改原始值,必须使用函数的<code>inplace=True</code>参数。这是可能的,但不推荐,如<a href="https://stackoverflow.com/questions/45570984/in-pandas-is-inplace-true-considered-harmful-or-not">here</a>所示</p>
<p>因此,您的代码可能如下所示:</p>
<pre><code>def dropunnamednancols(df):
"""
Drop any columns staring with unnamed and NaN
Args:
df ([dataframe]): dataframe of which columns to be dropped
"""
cols = [col for col in df.columns if (col is None) | (col.startswith('Unnamed'))]
df.drop(cols, axis=1, inplace=True)
</code></pre>
<p>作为示例数据:</p>
<pre><code>import pandas as pd
df_1 = pd.DataFrame({'a':[0,1,2,3], 'Unnamed':[9,8,7,6]})
df_2 = pd.DataFrame({'Unnamed':[9,8,7,6], 'b':[0,1,2,3]})
lst_dfs = [df_1, df_2]
[dropunnamednancols(df) for df in lst_dfs]
# df_1
# Out[55]:
# a
# 0 0
# 1 1
# 2 2
# 3 3
# df_2
# Out[56]:
# b
# 0 0
# 1 1
# 2 2
# 3 3
</code></pre>