- 查找制作过平均ROI(投资回报率)最高的电影的前3名制作人 *
描述:(我正被提供一张table)
import pandas as pd
import numpy as np
table = pd.DataFrame({'Movie_title':['Hot Tub Time Machine 2','The Princess Diaries 2: Royal Engagement','Whiplash','Kahaani','마린보이'],'Producers':[['Andrew Panay','Jason Blum'],['Whitney Houston', 'Mario Iscovich', 'Michel Litvak'],['David Lancaster', 'Michel Litvak', 'Jason Blum', 'Helen Estabrook'],['Sujoy Ghosh'],[]],'Directors':[['Steve Pink'],['Garry Marshall'],['Damien Chazelle'],['Sujoy Ghosh'],['Jong-seok Yoon']],'ROI':[-12.038207142857143,137.8735875,296.72727272727275,1233.3333333333333,-76.14607902735563]})
这是表 Dataframe table DataFrame的外观
我想在"Producers"列上应用. groupby()方法,然后在ROI列上使用. mean()方法
table.groupby('Producers')[['Movie Title','ROI','Directors']].mean('ROI')
- 但它抛出错误**(请参考下图)
last line of error
请参考下面的图片来查看错误。我不知道如何添加jupyter笔记本代码输出和Pandas Dataframe 请帮助我解决这个问题陈述。我提供了jupyter笔记本代码块的图片。
1条答案
按热度按时间0mkxixxg1#
您可以在
Producers
列上使用pandas explode函数-对于列表中每行的每个元素,您将得到一个新行(其中包含来自索引和其他列的复制数据)。然后,您可以应用您的均值groupby(并将其与爆炸组合,以获得一行解):
最终结果: