【发布时间】:2018-11-17 17:59:41
【问题描述】:
我有一个演员和导演的数据集,以及他们合作过的电影的受欢迎程度。
print (actors_director_df.head(3))
actor director popularity counter
0 Chris Pratt Colin Trevorrow 32.985763 0
1 Bryce Dallas Howard Colin Trevorrow 32.985763 0
2 Irrfan Khan Colin Trevorrow 32.985763 0
我想使用演员和导演进行分组,因为一对可以在不止一部电影中工作。我成功地使用了下面的查询。
actor_director_grouped = actors_director_df.groupby(['actor','director']) \
.size() \
.reset_index(name='count') \
.sort_values(['count'], ascending=False) \
.head(10)
print (actor_director_grouped)
actor director count
3619 Clint Eastwood Clint Eastwood 14
19272 Woody Allen Woody Allen 12
9606 Johnny Depp Tim Burton 8
但此 DF 中缺少流行度列。
我想做的是在groupby之后做一个人气平均值列,并在演员和导演面前显示平均值以及他们一起制作的电影数量。
即我的理想输出应该是这样的。
actor director popularity count
3619 Clint Eastwood Clint Eastwood 32.985763 14
19272 Woody Allen Woody Allen 5.1231231 12
9606 Johnny Depp Tim Burton 3.1231231 8
【问题讨论】:
-
可能想使用
agg和mean来获得人气,sum来获得计数 -
您能否将稍大的数据框样本发布为易于重新创建的字典? (实际上也显示了更多组)
-
不是重复但非常相似:stackoverflow.com/questions/38174155/…
标签: python pandas pandas-groupby