在每次循环迭代中创建新的pandas数据帧

时间:2017-09-20 15:11:48

标签: python pandas

我有几个pandas数据帧(A,B,C,D),我想将它们中的每一个分别与另一个数据帧(E)合并。

我想编写一个for循环,允许我为所有这些循环运行合并代码并使用不同的名称保存每个结果数据框,例如:

tables = [A,B,C,D]

n=0
for df in tables:
    merged_n = df.merge(E, left_index = True, right_index = True)
    n=n+1

我无法找到为循环中创建的新数据帧获取不同名称的方法。我已经搜索了stackoverflow,但人们说永远不应该这样做(但是找不到解释原因)或者使用字典,但在字典中使用数据帧并不实际。

1 个答案:

答案 0 :(得分:1)

你想用自动生成的变量名称来混淆命名空间吗?如果是这样,不要这样做。只需使用字典。

如果你真的不想使用字典(真的想想为什么你不想这样做),你可以慢慢地去做写,明显的方式:

ea = E.merge(A)
eb = E.merge(B)
...

编辑:如果你真的想在你的命名空间中添加vars,我不推荐,你可以这样做:

l = locals()
for c in 'abcd':
    l[f'e{c}'] = E.merge(l[c.upper()])