我有数据(df_movies2),其列为:年份,生产公司和该特定年份产生的收入。我想每年归还最大的收入以及生产公司的名称。例如,Studio Babelsberg在2016年的收入最高。 This is the data
这是我尝试过的
import pandas as pd
df_movie2.groupby(['year','production_companies']).revenue.max()
但是每年返回所有生产公司的名称都无效。 谢谢您的帮助
答案 0 :(得分:1)
我不确定您希望返回什么。如果对输出进行了所需的排序,但是缺少值,那是因为.max()
分别删除了duplicates
的{{1}}。请参见编辑1,以从year
到max
的升序返回所有值。
如果这是一个排序问题,您想将min
的值返回为max
的值,而不必担心为每个{{1}删除min
duplicate
},然后参考编辑2:
production_companies
编辑1:
year
输出:
import pandas as pd
d = ({
'year' : ['2016','2016','2016','2016','2016','2015','2015','2015','2015','2014','2014','2014','2014'],
'production_companies' : ['Walt Disney Pictures','Universal Pictures','DC Comics','Twentieth Century','Studio Babelsberg','DC Comics','Twentieth Century','Twentieth Century','Universal Pictures','The Kennedy/Marshall Company','Twentieth Century','Village Roadshow Pictures','Columbia Pictures'],
'revenue' : [966,875,873,783,1153,745,543,521,433,415,389,356,349],
})
df = pd.DataFrame(data = d)
编辑2:
df = df.sort_values(['revenue', 'year'], ascending=[0, 1])
df = df.set_index(['year', 'production_companies'])
输出:
revenue
year production_companies
2016 Studio Babelsberg 1153
Walt Disney Pictures 966
Universal Pictures 875
DC Comics 873
Twentieth Century 783
2015 DC Comics 745
Twentieth Century 543
Twentieth Century 521
Universal Pictures 433
2014 Twentieth Century 389
Village Roadshow Pictures 356
Columbia Pictures 349
The Kennedy/Marshall Company 320