Python 使用熊猫组合两个文件
我在使用pandas组合两个输入文件时遇到问题,如下面的数据示例所示。它们以从WordPress导出的CSV文件开始。我将它们加载到数据帧中。我的想法是创建一个空的输出数据框,并通过循环第一个输入文件中的每个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
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页的示例。这种风格需要大写吗?如果是的话,在我的帖子中不是应该大写吗?在第一句话中,它没有资本化。谢谢