我有一个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_name
和event_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
我首先尝试对这些重复元素进行分组,但是在这一步之后我仍然坚持如何继续。 我希望你能提供帮助。 提前致谢!
答案 0 :(得分:2)
您可以使用pandas.pivot_table
:
df.pivot_table(index=["event_name", "event_person_firstname", "event_person_lastname"], columns="year", values="price").reset_index()