我实际上是想只获取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”
答案 0 :(得分:0)
IIUC:
我认为您需要使用以下内容:
remove_duplicate_match_codes.groupby('year')['winner'].apply(lambda x: x.value_counts().head(1))
这将按年份将value_counts应用于获胜者的每个部分,并使用head
来检索第一条记录或该年中计数最高的获胜者。