如何查找列名称以及最大值

时间:2019-03-25 20:54:55

标签: python python-3.x pandas

我有数据(df_movies2),其列为:年份,生产公司和该特定年份产生的收入。我想每年归还最大的收入以及生产公司的名称。例如,Studio Babelsberg在2016年的收入最高。 This is the data

这是我尝试过的

  import pandas as pd 
df_movie2.groupby(['year','production_companies']).revenue.max()

但是每年返回所有生产公司的名称都无效。 谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

我不确定您希望返回什么。如果对输出进行了所需的排序,但是缺少值,那是因为.max()分别删除了duplicates的{​​{1}}。请参见编辑1,以从yearmax的升序返回所有值。

如果这是一个排序问题,您想将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