为pandas中对时间敏感的数据集创建新列以获取历史信息

时间:2018-01-17 21:25:15

标签: python pandas dataframe

我想创建一个按“id”分组的新数据框,并为2016年之前和之前的所有内容创建一个新列。实际上,我试图压缩下面的数据框。 这是原始数据框:

Year | id | issue_1 | issue_2
=====|====|=========|========
2014 | 11 | 1       | 0
2015 | 11 | 0       | 1
2016 | 11 | 1       | 0
2014 | 15 | 1       | 1
2016 | 15 | 0       | 0

请注意,可以跳过年份,如id = 15所示,它没有任何2015年的数据。

我的目标是让最终输出看起来像这样:

id | 2016issue_1 | 2015issue_1 | 2014issue_1 | 2016issue_2 | 2015issue_2 | 2014issue_2
===|=============|=============|=============|=============|=============|=============
11 | 1           | 0           | 1           | 0           | 1           | 0
15 | 0           | 0           | 1           | 0           | 0           | 1

1 个答案:

答案 0 :(得分:2)

尝试.pivot_table(参见下面的代码和输出)。

df = df.pivot_table(index=['id'], columns='Year', values=['issue_1','issue_2'])

enter image description here