gpt4 book ai didi

python - numpy sort 在对 pandas DataFrame 进行排序时表现得很奇怪

转载 作者:太空狗 更新时间:2023-10-30 00:02:34 27 4
gpt4 key购买 nike

当我执行 data[genres].sum() 时,我得到以下结果

Action        1891
Adult 9
Adventure 1313
Animation 314
Biography 394
Comedy 3922
Crime 1867
Drama 5697
Family 754
Fantasy 916
Film-Noir 40
History 358
Horror 1215
Music 371
Musical 260
Mystery 1009
News 1
Reality-TV 1
Romance 2441
Sci-Fi 897
Sport 288
Thriller 2832
War 512
Western 235
dtype: int64

但是当我尝试使用 np.sort

对总和进行排序时
genre_count = np.sort(data[genres].sum())[::-1]
pd.DataFrame({'Genre Count': genre_count})`

我得到以下结果

`Out[19]:
Genre Count
0 5697
1 3922
2 2832
3 2441
4 1891
5 1867
6 1313
7 1215
8 1009
9 916
10 897
11 754
12 512
13 394
14 371
15 358
16 314
17 288
18 260
19 235
20 40
21 9
22 1
23 1

预期的结果应该是这样的:

Genre Count
Drama 5697
Comedy 3922
Thriller 2832
Romance 2441
Action 1891
Crime 1867
Adventure 1313
Horror 1215
Mystery 1009
Fantasy 916
Sci-Fi 897
Family 754
War 512
Biography 394
Music 371
History 358
Animation 314
Sport 288
Musical 260
Western 235
Film-Noir 40
Adult 9
News 1
Reality-TV 1

似乎 numpy 忽略了流派列。

有人可以帮助我了解我哪里出错了吗?

最佳答案

data[genres].sum() 返回一个系列。流派列实际上不是列 - 它是索引。

np.sort 只查看 DataFrame 或 Series 的值,在索引处,它返回一个新的 NumPy 数组,其中包含排序后的 数据[流派].sum() 值。索引信息丢失。

排序 data[genres].sum() 并保留索引信息的方法是:

genre_count = data[genres].sum()
genre_count.sort(ascending=False) # in-place sort of genre_count, high to low

然后,您可以根据需要将排序后的 genre_count 系列转回 DataFrame:

pd.DataFrame({'Genre Count': genre_count})

关于python - numpy sort 在对 pandas DataFrame 进行排序时表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29059813/

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