基于重复生成新功能

时间:2018-05-29 21:49:05

标签: python pandas

我有一个pandas.DataFrame事件,如下所示:

event_name  event_person_firstname  event_person_lastname   price   year
event_a     foo                     bar                     100     2017
event_a     foo                     bar                     42      2016
event_a     foo                     bar                     90      2016
event_a     not                     same                    80      2015
event_b     random                  name                    200     2018
event_b     random                  name                    42      2010

我想根据event_nameevent_person_firstname + event_person_lastname合并这些行,这样就会有一个新的列以每年的名字命名并具有相应的价格(如果没有数据中的价格,应为NaN或空 - 我不在乎。

这很难解释,所以这是上面的DataFrame转换后的预期结果:

event_name  event_person_firstname  event_person_lastname   2018    2017    2016    2015    2014    2010
event_a     foo                     bar                     NaN     100     42      NaN     90      NaN
event_a     not                     same                    NaN     NaN     NaN     80      NaN     NaN
event_b     random                  name                    200     NaN     NaN     NaN     NaN     42

我首先尝试对这些重复元素进行分组,但是在这一步之后我仍然坚持如何继续。 我希望你能提供帮助。 提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以使用pandas.pivot_table

df.pivot_table(index=["event_name", "event_person_firstname", "event_person_lastname"], columns="year", values="price").reset_index()
相关问题