将两个文件与Pandas

时间:2016-10-06 11:29:41

标签: python pandas

我在使用pandas组合两个输入文件时遇到问题,如下面的数据示例所示。它们最初是从WordPress导出的CSV文件。我将它们加载到数据框中。我的想法是创建一个空的输出数据框并通过循环遍历第一个输入文件中的每个id来填充它,但这看起来很麻烦而且没有利用Pandas'强项。而且因为我是Pandas的新手,我无法弄清楚如何将列表类型的第二个文件转换为我想要的输出格式。

input_file_1:

id postDate
23 2016-10-03
24 2016-02-15
25 2016-07-22

input_file_2:

id key    value
23 name   smith
23 age    24
23 city   boston
24 name   jones
24 age    35
24 city   chicago
25 name   williams
25 age    21
25 city   dallas

desired_output_file:

id postDate   name     age city
23 2016-10-03 smith    24  boston
24 2016-02-15 jones    35  chicago
25 2016-07-22 williams 21  dallas

1 个答案:

答案 0 :(得分:0)

您可以将pivotjoin结合使用:

In [126]: df1.set_index('id').join(df2.pivot(index='id', columns='key', values='value'))
Out[126]:
      postDate age     city      name
id
23  2016-10-03  24   boston     smith
24  2016-02-15  35  chicago     jones
25  2016-07-22  21   dallas  williams

说明:

In [127]: df2.pivot(index='id', columns='key', values='value')
Out[127]:
key age     city      name
id
23   24   boston     smith
24   35  chicago     jones
25   21   dallas  williams