如何从两个单独的数据框列表合并熊猫数据框

时间:2019-05-20 18:34:40

标签: python pandas

我有两个dfs列表

List1 = [df1,df2,df3]
List2 = [df4,df5,df6]

我想将List1中的第一个df与列表2中的相应df合并。即df1和df4以及df2和df5,等等。

dfs共享一个公共列'Col1'。我尝试了以下代码

NewList = []
for i in len(List1),len(List2):
    NewList[i]=pd.merge(List1[i],List2[i],on='Col1') 

我收到错误“列表索引超出范围”。

我意识到这似乎是一个普遍的问题,但是我无法将在Stack上找到的任何解决方案应用于我的特定问题。

在此先感谢您的帮助

2 个答案:

答案 0 :(得分:1)

使用

class Fruit implements Comparable<Fruit> {

    private final int weigth;

    public Fruit(int weight) {
        this.weigth = weight;
    }

    @Override
    public int compareTo(Fruit other) {
        return Integer.compare(this.weigth, other.weigth);
    }

    public int getWeigth() {
        return this.weigth;
    }

}

class Apple extends Fruit {

    public Apple(int weight) {
        super(weight);
    }
}   

class Orange extends Fruit {

    public Orange(int weight) {
        super(weight);
    }
}


答案 1 :(得分:0)

要遍历两个列表并进行比较或对它们进行元素到元素的操作,可以使用zip()函数。

import pandas as pd

List1 = [df1,df2,df3]
List2 = [df4,df5,df6]

NewList = []
for dfa, dfb in zip(List1, List2):
    # Merges df1, df4; df2, df5; df3, df6
    mdf = dfa.merge(dfb, on = 'Col1')
    NewList.append(mdf)