我在使用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
答案 0 :(得分:0)
您可以将pivot
与join
结合使用:
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