Python 使用熊猫组合两个文件

Python 使用熊猫组合两个文件,python,pandas,Python,Pandas,我在使用pandas组合两个输入文件时遇到问题,如下面的数据示例所示。它们以从WordPress导出的CSV文件开始。我将它们加载到数据帧中。我的想法是创建一个空的输出数据框,并通过循环第一个输入文件中的每个id来填充它,但这似乎很麻烦,而且没有利用Pandas的优势。因为我是熊猫队的新手,所以我不知道如何将列表类型的第二个文件转换成我想要的输出格式 输入文件\u 1: id postDate 23 2016-10-03 24 2016-02-15 25 2016-07-22 id key

我在使用pandas组合两个输入文件时遇到问题,如下面的数据示例所示。它们以从WordPress导出的CSV文件开始。我将它们加载到数据帧中。我的想法是创建一个空的输出数据框,并通过循环第一个输入文件中的每个
id
来填充它,但这似乎很麻烦,而且没有利用Pandas的优势。因为我是熊猫队的新手,所以我不知道如何将列表类型的第二个文件转换成我想要的输出格式

输入文件\u 1:

id postDate
23 2016-10-03
24 2016-02-15
25 2016-07-22
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
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
输入文件\u 2:

id postDate
23 2016-10-03
24 2016-02-15
25 2016-07-22
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
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
所需的\u输出\u文件:

id postDate
23 2016-10-03
24 2016-02-15
25 2016-07-22
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
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

您可以将
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

您可以将
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

谢谢你的编辑。我只是好奇你为什么把熊猫/熊猫资本化。在McKinney的书《Python for Data Analysis》(Python for Data Analysis)中,它没有大写,即使是在句子的开头或作为章节标题,参见第4页的示例。这种风格需要大写吗?如果是的话,在我的帖子中不是应该大写吗?在第一句话中,它没有资本化。谢谢。谢谢你的编辑。我只是好奇你为什么把熊猫/熊猫资本化。在McKinney的书《Python for Data Analysis》(Python for Data Analysis)中,它没有大写,即使是在句子的开头或作为章节标题,参见第4页的示例。这种风格需要大写吗?如果是的话,在我的帖子中不是应该大写吗?在第一句话中,它没有资本化。谢谢