[英]Calculating top 10 average per year in python (groupby, nlargest)
I would like to get the average of the top 10 "Net Profits" per year in the data set and have it stored in new df. 我想获取数据集中每年排名前10位的“净利润”的平均值,并将其存储在新的DF中。 Here is what I have so far. 这是我到目前为止所拥有的。
#loading the csv file
df = pd.read_csv('tmdb-movies.csv')
#Narrows down data to only include the last 25 years
df = df[df['release_year'] > 1992]
#Create column for calculated profit (revenue - budget)
df['Net Profit'] = (df['revenue_adj'] - df['budget_adj']) / 1000000
df = df['Net Profit'].groupby(df['release_year']).nlargest(10)
df.head(20)
This is the output I have so far: 这是我到目前为止的输出:
release_year
1993 10223 1293.766704
10225 628.371507
10226 490.390201
10222 451.732687
10312 345.086055
10260 344.534054
10240 312.158213
10234 279.252261
10228 272.728678
10250 226.825117
1994 4180 1093.391570
4179 916.422179
4187 483.382849
4181 471.414971
4203 434.906488
4186 388.200466
4197 365.866669
4182 338.760765
4177 302.944183
4194 246.901592
Name: Net Profit, dtype: float64
My desired output would be something like: 我想要的输出将是这样的:
release_year Average Net Profit
1993 400
1994 459
1995 480
Group by the level=0
for you index and use .mean()
按level=0
分组以供您索引并使用.mean()
df.groupby(df.index.get_level_values(level=0)).mean()
release_year
1993 464.484548
1994 504.219173
1995 511.392629
1996 424.185431
1997 543.448686
Name: Net Profit, dtype: float64
你可以用mean
level
通过
df.mean(level=0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.