【发布时间】:2018-05-12 07:17:48
【问题描述】:
这里的目的是读入许多 csv 文件,每个文件都读入一个单独的 Pandas 数据框。以下三行中的第三行在“=”之前是错误的。我已经阅读了很多关于使用字典而不是动态变量的帖子,但看不到如何在这里应用它。除了 globals() 方式之外,还有其他似乎有很多反对意见的方式吗?
testlist = ['A', 'B', 'C']
for dfsuffix in testlist:
'df' + dfsuffix = pandas.read_csv(dfsuffix + '.csv')
因此,例如,我正在寻找将第一次迭代解释为:
dfA = pandas.read_csv('A.csv')
数据帧具有不同的行长,所以我不认为多维数组或多索引数据帧是理想的。尽管它们具有相同的列,但我不想附加它们。
注意。我应该补充一点,我事先不知道 testlist 的内容是什么,除了它们将是由用户输入填充的日期列表。
【问题讨论】:
-
创建 1 个包含 3 个条目的字典,而不是创建 3 个变量。很简单。
-
是的,您可以使用字典。
df[dfsuffix] = pandas.read_csv(dfsuffix + ".csv")允许您使用df["A"]引用数据框。 -
使用
df_dict = {},然后在循环中,而不是分配给globals dict,只需分配给您刚刚定义的那个:df_dict[dfsuffix] = pandas.read_csv(dfsuffix + ".csv") -
不,
df["A"]与硬编码dfA没有什么不同。它只是一个持有对值的引用的变量。 -
@JonB451 嗯,更像是对 Python 强大的内置哈希映射数据结构的信任。
标签: python arrays variables dataframe scope