在循环中创建pandas数据帧

时间:2015-06-25 15:40:44

标签: python pandas

我正在尝试根据文件和数据框名称列表创建大约120个数据框。问题是在循环工作之后,数据帧不会持久存在。我的代码可以在下面找到。有谁知道为什么这可能不起作用?

for fname, dfname in zip(CSV_files, DF_names):
    filepath = find(fname, path)
    dfname = pd.DataFrame.from_csv(filepath)

1 个答案:

答案 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]]