【发布时间】:2015-09-18 22:07:24
【问题描述】:
我该如何转这个:
year artist genre genre_sales
1999 A Pop/Rock 10
1999 B Hip/Hop 15
1999 C Country 8
2000 A Pop/Rock 11
2000 B Hip/Hop 14
2000 D Jazz 1
2001 B Hip/Hop 18
2001 C Country 10
进入这个:
year artist genre genre_sales
1999 A Pop/Rock Nan
1999 B Hip/Hop Nan
1999 C Country Nan
2000 A Pop/Rock 10
2000 B Hip/Hop 15
2000 D Jazz (1999 Jazz sales despite D not releasing in '99)
2001 B Hip/Hop 14
2001 C Country (2000 country values, not the 8 from '99)
我看到了 groupby-shift question and cookbook 页面,并认为我可以这样做:
df.groupby(['year','artist'])['genre_sales'].shift(1)
或
df.groupby(['year','genre','artist'])['genre_sales'].shift(1)
但我认为只有艺术家每年制作一张专辑才能奏效。
Current 'Genre Sales' 是该艺术家在该年的流派的年销售额。我正在努力让每位艺术家连续获得上一年的“流派销售”。每个流派每年都会有多个艺术家,并且每个艺术家在给定的年份中可以有零个或多个该流派的条目。
【问题讨论】:
-
实际上我无法弄清楚如何将第一个数据帧转换为第二个数据帧。能否请您更具体一些(您想实现哪个功能?)