如何从pandas.value_counts中获取每个变量的最大值?

时间:2019-05-29 16:59:19

标签: python pandas numpy

我实际上是想只获取pandas.value_count()函数返回的每年的最大值?

我尝试将apply函数与lambda函数一起使用,但未成功:

print(match_won_by_team.apply(lambda x : match_won_by_team[x].index[0]))


remove_duplicate_match_codes = data.drop_duplicates(subset='match_code', keep='first').reset_index(drop=True)

match_won_by_team = remove_duplicate_match_codes.groupby('year')['winner'].value_counts()

print('Match won by each team in respective seasons:- ', match_won_by_team)

我希望输出显示为2008:该系列的拉贾斯坦邦皇家队:13、2009:德里达德里维尔斯:10等。

2008  Rajasthan Royals               13
      Kings XI Punjab                10
      Chennai Super Kings             9
2009  Delhi Daredevils               10
      Deccan Chargers                 9
      Royal Challengers Bangalore     9
2010  Mumbai Indians                 11
      Chennai Super Kings             9
      Deccan Chargers                 8

我在使用apply函数和lambda时收到此错误。 AttributeError:“ numpy.int64”对象没有属性“ index”

1 个答案:

答案 0 :(得分:0)

IIUC:

我认为您需要使用以下内容:

remove_duplicate_match_codes.groupby('year')['winner'].apply(lambda x: x.value_counts().head(1))

这将按年份将value_counts应用于获胜者的每个部分,并使用head来检索第一条记录或该年中计数最高的获胜者。