Python 3.x 如何基于Python中的输入在函数中动态创建全局变量
我试图创建一个函数,它返回一个动态命名的列列表。通常我可以手动命名列表,但我现在有100多个csv文件要处理 我的目标是:Python 3.x 如何基于Python中的输入在函数中动态创建全局变量,python-3.x,function,globals,Python 3.x,Function,Globals,我试图创建一个函数,它返回一个动态命名的列列表。通常我可以手动命名列表,但我现在有100多个csv文件要处理 我的目标是: 函数创建一个列表,并根据数据帧名称对其命名 创建的列表可在函数外部调用 我已经做了我的研究,从一个早期的帖子中,我非常接近于帮助我 这是我改编的 def test1(dataframe): # Using globals() to get dataframe name df_name = [x for x in globals() if globals()[
def test1(dataframe):
# Using globals() to get dataframe name
df_name = [x for x in globals() if globals()[x] is dataframe][0]
# Creating local dictionary to use exec function
local_dict = {}
# Trying to generate a name for the list, based on input dataframe name
name = 'col_list_' + df_name
exec(name + "=[]", globals(), local_dict)
# So I can call this list outside the function
name = local_dict[name]
for feature in dataframe.columns:
# Append feature/column if >90% of values are missing
if dataframe[feature].isnull().mean() >= 0.9:
name.append(feature)
return name
为了确保列表名称根据提供给函数的数据帧更改,我使用以下方法命名列表:
name='col\u list\uu'+df\u name
当我尝试在函数外部访问此列表时,出现了问题:
name=local\u dict[name]
我无法为本地字典分配动态列表名,因此我必须始终在函数外部调用name
,以返回列表。我希望列表根据数据帧输入命名(例如col_list_df1、col_list_df2、col_list_df99)
这很有帮助,但似乎是针对变量的。
global“col\u list”+df\u name
返回语法错误
任何帮助都将不胜感激 为什么不利用pandas将每个csv文件读取到它自己的数据帧中呢。这将基于csv文件定义列标题。然后,您可以保留一个数据帧列表,并根据需要对其进行处理。实际上,我已经将每个csv文件读入了自己的数据帧中。从这里开始,我尝试创建一个函数,该函数接收这些数据帧,并返回列名称列表。此外,我希望函数可以根据数据帧名称命名列表。为什么不利用pandas将每个csv文件读取到它自己的数据帧中呢。这将基于csv文件定义列标题。然后,您可以保留一个数据帧列表,并根据需要对其进行处理。实际上,我已经将每个csv文件读入了自己的数据帧中。从这里开始,我尝试创建一个函数,该函数接收这些数据帧,并返回列名称列表。此外,我希望函数可以根据数据帧名称命名列表。