访问多个动态变量以外部循环 - python中的全局关键字



我正在使用for loop读取多个CSV文件并创建数据框架。我也想访问外部这些数据帧以进行循环。我也使用了Global关键字,但它不起作用。

for file in os.listdir('C:\Users\ABCDE\Desktop\Measurement'):
  if file.endswith('.csv'):
     print(file)
     name = file[3:6]
     global df_name   # this is the line 
     df_name = 'df' + name  
     print(df_name)
     df_name = pd.read_csv('C:\Users\ABCDE\Desktop\Measurement\' + str(file),low_memory = False)
     df_name.rename(columns={0:'values'}, 
             inplace=True)       
     g = df_name.level_1.str[-2:] # Extracting column names
     df_name['lvl'] = df_name.level_1.apply(lambda x: int(''.join(filter(str.isdigit, x))))

您可以在上面看到,我想访问这些dataframes(df_name(我有3个dataframes,我有3个文件(以进行循环

如何使用全局关键字使这些数据范围可访问循环?

在用注释澄清后,您可以使用 list dictionary

dataFrames = list()
dataFrameDict = dict()
for file in os.listdir('C:\Users\ABCDE\Desktop\Measurement'):
  if file.endswith('.csv'):
     print(file)
     name = file[3:6]
     df_name = pd.read_csv('C:\Users\ABCDE\Desktop\Measurement\' + str(file),low_memory = False)
     df_name.rename(columns={0:'values'}, 
             inplace=True)       
     g = df_name.level_1.str[-2:] # Extracting column names
     df_name['lvl'] = df_name.level_1.apply(lambda x: int(''.join(filter(str.isdigit, x))))
     # ADD TO A LIST
     dataFrames.append(df_name)
     # OR TO A DICT
     dataFramesDict[name] = df_name

# How to Access
# Index for 10 files would be 0-9
index = 0
dataFrames[index]
# Name of the dataset you want to access
name = "..."
dataFrameDict[name]

您需要在功能顶部定义变量名,然后使用

a = dataframe
def func():
    global a
    a = yourdataframe

您需要在声明变量使其全局之后添加单独的行像这样的东西

df_name = 'df' + name 
global df_name

我可以理解您要实现的目标,但是为什么您希望您的代码有效。'df' + namestring,而不是变量;另外,您不会声明这样的外部变量。语法要简单得多,并且与熊猫无关。这是用法的示例:

a = 'foo'
def get_a():
    global a
    return a
def set_a(b):
    global a
    a = b
if __name__ == '__main__':  # Just defining the entry point of the python script
    print(get_a())
    set_a(2)
    print(get_a())
    print(a)

这是您应该期望的作为脚本的输出:

'foo'
2
2

相关内容

  • 没有找到相关文章

最新更新