我正在尝试根据文件和数据框名称列表创建大约120个数据框。问题是在循环工作之后,数据帧不会持久存在。我的代码可以在下面找到。有谁知道为什么这可能不起作用?
for fname, dfname in zip(CSV_files, DF_names):
filepath = find(fname, path)
dfname = pd.DataFrame.from_csv(filepath)
答案 0 :(得分:0)
这是一个python功能。 看到这个更简单的例子:(注释显示输出)
values = [1,2,3]
for v in values:
print v,
# 1 2 3
for v in values:
v = 4
print v,
# 4 4 4
print values
# [1, 2, 3]
# the values have not been modified
另请参阅此问题并回答:Modifying a list iterator in Python not allowed?
注释中建议的解决方案应该更好,因为您不修改迭代器。如果您需要一个名称来访问数据框,您还可以使用dictionanry:
dfs = {}
for fname, dfname in zip(CSV_files, DF_names):
filepath = find(fname, path)
df = pd.DataFrame.from_csv(filepath)
dfs[dfname] = df
print dfs[DF_names[1]]