gpt4 book ai didi

python - pandas:按两列分组,然后按第三列的值排序

转载 作者:行者123 更新时间:2023-12-01 01:42:47 25 4
gpt4 key购买 nike

我有以下行:

genre_df.groupby(['release_year', 'genres']).vote_average.mean()

这给了我以下内容:

release_year  genres         
1960 Action 6.950000
Adventure 7.150000
Comedy 7.900000
Drama 7.600000
Fantasy 7.300000
History 6.900000
Horror 8.000000
Romance 7.600000
Science Fiction 7.300000
Thriller 7.650000
Western 7.000000
1961 Action 7.000000
Adventure 6.800000
Animation 6.600000
Comedy 7.000000
Crime 6.600000
Drama 7.000000
Family 6.600000
History 6.700000
Music 6.600000
Romance 7.400000
War 7.000000
...

我希望看到的是 df 按发行年份和类型分组,但首先按最高得票平均值排序。

又名:

 release_year  genres         
1960 Horror 8.000000
Comedy 7.900000
Action 6.950000
Thriller 7.650000
Drama 7.600000
Romance 7.600000
Fantasy 7.300000
Science Fiction 7.300000
Adventure 7.150000
Western 7.000000
History 6.900000

如何实现这一目标?

最佳答案

0.23.0+的解决方案- 首先通过to_frame创建一列DataFrame然后sort_values :

df = df.to_frame().sort_values(['release_year','vote_average'], ascending=[True, False])
print (df)
vote_average
release_year genres
1960 Horror 8.00
Comedy 7.90
Thriller 7.65
Drama 7.60
Romance 7.60
Fantasy 7.30
Science Fiction 7.30
Adventure 7.15
Western 7.00
Action 6.95
History 6.90
1961 Romance 7.40
Action 7.00
Comedy 7.00
Drama 7.00
War 7.00
Adventure 6.80
History 6.70
Animation 6.60
Crime 6.60
Family 6.60
Music 6.60

对于旧版本的 pandas 是必要的 reset_indexset_index :

df = (df.reset_index()
.sort_values(['release_year','vote_average'], ascending=[True, False])
.set_index(['release_year','genres']))

关于python - pandas:按两列分组,然后按第三列的值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com