用Pandas组合两个文件

2024-05-12 18:24:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

输入文件1:

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

输入文件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

所需的输出文件:

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

Tags: 文件数据nameid示例citypandasage
1条回答
网友
1楼 · 发布于 2024-05-12 18:24:37

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

相关问题 更多 >