0

我正在尝试结合 value_count 对数据框列值进行排序-

下面是我的算法的代码片段:

with open (f_out_txt_2, 'w', encoding='utf-8') as f_txt_out_2:
    f_txt_out_2.write(f"SORTED First Names w/SORTED value counts:\n")
    for val, cnt in df['First Name'].value_counts(sort='True').iteritems():
        f_txt_out_2.write("\n{0:9s}  {1:2d}".format(val, cnt))

下面是输出的前几行 - 请注意“名字”值不是按字母顺序排列的。 如何在保持值计数排序的同时对“名字”值进行排序?

输出:
SORTED First Names w/SORTED 值计数:

玛丽莲 11
托德 10
杰里米 10
芭芭拉 10
莎拉 9
玫瑰 9
凯西 9
史蒂文 9
艾琳 9
辛西娅 9
卡尔 8
爱丽丝 8
贾斯汀 8
鲍比 8
红宝石 8
格洛丽亚 8
朱莉 8
克拉伦斯 8
哈利 8
安德烈亚 8

.... 不幸的是,我找不到从哪里下载“employee.csv”文件的原始源链接,但这里有一个示例,可以让您了解它包含的内容:

在此处输入图像描述

4

1 回答 1

0

我相信您会使用以下代码按名字排序,然后按值计数。

dfg = df.groupby('First Name').agg(value_count = ('First Name','count')).sort_values(by = ['First Name','value_count'], ascending = [True,False])
于 2020-07-03T20:35:18.183 回答