n-dataframes内部连接到最终数据帧

时间:2016-09-21 20:48:27

标签: python pandas

我正在试图弄清楚如何将n个数据帧内部合并到单个最终数据帧。

我需要能够指定一个数据帧列表,其中所有的内部联接作为另一个数据帧输出。同样,预先不知道确切的数字,但整数计数可以是。

见下面的代码:

import pandas as pd


result = pd.merge(df_1, df_2, on=['Col1', 'Col2', 'Col3', 'Col4'], how='inner')
result_2 = pd.merge(df_3, df_4, on=['Col1', 'Col2', 'Col3', 'Col4'], how='inner')
result_final = pd.merge(result, result_2, on=['Col1', 'Col2', 'Col3', 'Col4'], how='inner')

2 个答案:

答案 0 :(得分:1)

这个怎么样:

dflist = [df1, df2, df3, df4]
result_final = reduce(lambda x,y: x.merge(y, 
                         on=['Col1', 'Col2', 'Col3', 'Col4'], 
                         how='inner'), 
                     dflist)

答案 1 :(得分:1)

cols = ['Col1', 'Col2', 'Col3', 'Col4']

pd.concat([d.set_index(cols) for d in [df_1, df_2, df_3, df_4]], axis=1)