我正在试图弄清楚如何将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')
答案 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)