【问题标题】:Create a variable with a name from a list [duplicate]从列表中创建一个具有名称的变量[重复]
【发布时间】:2020-04-18 06:17:18
【问题描述】:

我有一个“文件名”列表,对应于我要读取的 .csv 文件。

filenames = ['filename_1', 'filename_2', ..., 'filename_n']

for file in filenames:
    file_address = '{}{}'.format(file, '.csv')
    file = pd.read_csv(file_address)
    display(file.info())

期望的结果:
我想创建一个变量,其名称与它读取的文件相对应。

type(filename_1)
pandas.core.frame.DataFrame

如果你能告诉我如何用谷歌搜索它,或者你能提供一个如何存档的例子,我将不胜感激。

【问题讨论】:

  • tl;dr 既然已经订购了,就把它们放在一个列表中
  • 为什么?我假设文件名列表是使用walklistdir 动态创建的。您将如何处理动态创建的变量名?如果不是动态创建的,为什么不先创建分隔变量呢?
  • 其他解决方案可能是创建dict,其中键是文件名,值是对应的数据帧。

标签: python-3.x list variables iteration


【解决方案1】:

如果您只想在循环期间引用变量:

import pandas as pd
for file in filenames:
    f = pd.read_csv(file + '.csv')
    print(f)

如果要在循环外为每个文件引用一个变量,请使用字典:

  import pandas as pd
  d = dict()
  for count, file in enumerate(filenames):
      d['f' + str(count)] = pd.read_csv(file + '.cvs')

然后通过字典中的键引用任何文件名,例如:d['f1']

【讨论】:

    猜你喜欢
    • 2012-08-25
    • 2017-10-22
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多