gpt4 book ai didi

python - 使用 rank (Python) 对字符串的频率分布进行排序

转载 作者:行者123 更新时间:2023-12-04 12:56:48 26 4
gpt4 key购买 nike

我必须使用预定等级对字符串变量(教育)的频率分布进行排序,我编写的代码如下。但是,它仍然使用字母顺序排序(请附上图片),我不知道出了什么问题。

education_rank = {' Bachelors':12, ' HS-grad':8, ' 11th':6, ' Masters':14, ' 9th':5, ' Some-college':11, ' Assoc-acdm':10, ' Assoc-voc':9, ' 7th-8th':4, ' Doctorate':15, ' Prof-school':13, ' 5th-6th':3, ' 10th':16, ' 1st-4th':2, ' Preschool':1, ' 12th':7}

fd_education = pd.value_counts(adult_data.education)
print(fd_education)

fd_education = fd_education.sort_index(level='education_rank')
print(fd_education)
enter image description here

最佳答案

试试这个方法 -

  • 排序 education_rank作为获取索引值的系列
  • 使用索引值从 value_counts 中获取行系列
  • Dropna如果有的话
  • #Your predefined rankings
    education_rank = {'Bachelors':12, 'HS-grad':8, '11th':6, 'Masters':14, '12th':77}

    #Your frequency output from value_counts()
    fd_education = pd.Series({'Bachelors':500, 'HS-grad':809, '11th':23, 'Masters':65})

    fd_education[pd.Series(education_rank).sort_values().index].dropna()
    11th          23
    HS-grad 809
    Bachelors 500
    Masters 65
    dtype: int64

    说明-
    问题是您将字典传递给级别而不是系列对象的索引名称。帮助处理多索引情况的级别目标。这让它决定对哪个索引进行排序。您不能提供序列作为列表/字典进行排序。
    如果无法找到您提供的索引名称,它只会按照字母顺序进行排序。检查这个例子 -
    #Your predefined rankings
    education_rank = {'Bachelors':12, 'HS-grad':8, '11th':6, 'Masters':14, '12th':77}

    #Your frequency output from value_counts()
    fd_education = pd.Series({'Bachelors':500, 'HS-grad':809, '11th':23, 'Masters':65})

    fd_education = fd_education.sort_index(level='hello') #<----
    print(fd_education)
    11th          23
    Bachelors 500
    HS-grad 809
    Masters 65
    dtype: int64
    请阅读 documentation更多细节。

    关于python - 使用 rank (Python) 对字符串的频率分布进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65644356/

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