Pandas:使用一个公共列合并多个DataFrame

时间:2017-04-14 00:25:36

标签: python python-3.x pandas merge jointable

我正在处理多个数据帧,每个数据帧都有一个共同的列,即post_id。每个df如何显示的示例:

  post_id   post_likes  
  0          1
  1          2
  2          3
  3          4
  4          5
  5          6

所以每个df都有一个列,它有post_id,还有另一个列,例如喜欢,总计数,名称等等。有没有什么方法可以将所有这些dfs组合成一个基于post_id的,因为我的最终目标是将这个数据帧写入csv。

2 个答案:

答案 0 :(得分:1)

假设我有一长串数据框,所有数据框都有一个标有post_id的列和另一列。

lodf = [df1, df2, df3, df4, df5]

您可以将它们与pd.concat放在一起。你只需要先设置索引

df = pd.concat([d.set_index('post_id') for d in lodf], axis=1).reset_index()

演示

df1 = pd.DataFrame(dict(post_id=[1, 2, 3], col1=[1, 2, 3]))
df2 = pd.DataFrame(dict(post_id=[1, 2, 3], col2=[1, 2, 3]))
df3 = pd.DataFrame(dict(post_id=[1, 2, 3], col3=[1, 2, 3]))
df4 = pd.DataFrame(dict(post_id=[1, 2, 3], col4=[1, 2, 3]))
df5 = pd.DataFrame(dict(post_id=[1, 2, 3], col5=[1, 2, 3]))

lodf = [df1, df2, df3, df4, df5]

df = pd.concat([d.set_index('post_id') for d in lodf], axis=1).reset_index()
df

   post_id  col1  col2  col3  col4  col5
0        1     1     1     1     1     1
1        2     2     2     2     2     2
2        3     3     3     3     3     3

​

答案 1 :(得分:0)

module.exports = {
  ...,

  devServer: {
    stats: {
      chunks: false
    }
  },

  ...
}