Python:pandas库sort_values()方法的使用

这篇具有很好参考价值的文章主要介绍了Python:pandas库sort_values()方法的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、起因

今天做到北京玛达科技有限公司2021数据处理工程师笔试题,有一题是这样:

pandas sort_values,笔记,Python,pandas,python,数据分析
按照文件中单词出现频次由高往低依次排序,这个对我来说很好实现,用上 pandas 的 sort_values 方法就手到擒来。但是他后面又加上了一个条件,如果频次相同的情况下,按照单词的 MD5 值排序。这可把我迷住了:

  • 先用sort_values方法,频次由高往低依次排,再把频次相同单独拿出来再用 MD5 排?(因为sort_values排序后,同一频次的单词顺序会改变)
  • 还是先 MD5 排,再在不改变同一频次的单词顺序情况下,频次由高往低依次排?

最后去看了有关于 sort_values 的文档,成功解决先把单词出现频次由高往低依次排序,再把频次相同的情况下的单词按照 MD5 值排序这个问题,下面我带大家回顾一下 Python pandas sort_values() 方法的使用

2、sort_values() 函数说明

pandas 库的 sort_values() 函数可以对 Dataframe 的数据集按照某个字段中的数据进行排序。该函数可以指定列数据或行数据进行排序,可以是单个,也可以是 多个(以前经常用来处理单列/行数据,忘记了 sort_values() 也可以处理多列/行数据)。 series 也有 一个 sort_values() 函数,但在参数上稍有区别。

官方文档:pandas.Series.sort_values 和 pandas.DataFrame.sort_values

3、sort_values() 具体参数

格式如下:

DataFrame.sort_values(by=‘进行排序的列名或索引值’, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’, ignore_index=False, key=None)
参数 说明
by 指定要进行排序的列名或索引值
axis 若 axis=0 或 ‘index’,则按照指定 的数据大小排序;若 axis=1 或 ‘columns’,则按照指定 索引 中数据大小排序。默认axis=0
ascending 若 ascending=True,则按照升序排序;若 ascending=False,则按降序排序,默认为True,即升序排序。如果这是一个 bool 列表,则必须匹配 by 的长度
inplace 排序后的数据是否替换原来的数据,默认为False,即不替换
ignore_index 是否重置索引,默认为不重置

4、sort_values() 使用

4.1 单列/行排序

import pandas as pd
df = pd.read_csv('test.csv')
# 根据hello列降序排序
data = df.sort_values(by="hello", ascending=False, ,axis=0)
# axis=0表示按列,同理axis=1表示按行

4.2 多列/行排序

import pandas as pd
df = pd.read_csv('test.csv')
# 根据第一列降序排序,当第一列相同时,根据第三列进行升序排序。并且重置索引,替换原数据
data = df.sort_values(by = ['col1','col3'],ascending=[False,True],ignore_index=True,inplace=True)

5、应用

所以一开始那道题我这样写的:文章来源地址https://www.toymoban.com/news/detail-564360.html

# -*- coding: utf-8 -*-
# ---
# @Software: PyCharm
# @File: main.py
# @Author: WangYunchang
# @E-mail: wangyunchang@dxy.cn
# @Site: 
# @Time: 9月 20, 2022
# ---
import csv
import pandas as pd
import hashlib

counts = {}
# 读取文件
txt = open("word2count.txt").read()
# 将大写字母转化为小写
txt = txt.lower()
# 把文章中不是英文字母的全部代替为空格
for ch in '0123456789.,()%-':
    txt = txt.replace(ch, " ")
# 分割成列表
words = txt.split()
# 统计单词
for word in words:
    counts[word] = counts.get(word, 0) + 1
items = list(counts.items())
# 将所得单词及数目写入csv文件中
csvFile = open('word_result.csv', 'w', newline='')
# 写入表头,A是单词,B是出现次数
csv.writer(csvFile).writerow(["A", "MD5", "B"])
# 统计结果写入csv
writer = csv.writer(csvFile)
for key in counts:
    # MD5值
    ss = hashlib.md5(key.encode('utf-8')).hexdigest()
    writer.writerow([key, ss, counts[key]])
csvFile.close()
df = pd.read_csv('word_result.csv')
# 根据B降序排序,当B相同时,根据MD5进行降序排序
data = df.sort_values(by=["B", "MD5"], ascending=[False, False])
# 删除MD5
data = data.drop(columns="MD5")
# 把新的数据写入文件
data.to_csv('word_result.csv', mode='w', index=False)

到了这里,关于Python:pandas库sort_values()方法的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记(十七)——Pandas库

    数组只能存储一种类型的数据, 同时, 数组提供了许多方便统计计算的功能 (如平均值 mean 、标准差 std 等) pandas 是基于 numpy 数组构的, 但 二者最大的不同是 pandas 是专门为处 理表格和混杂数据设计的,比较契合统 计分析中的表结构,而 numpy 更适合处 理统一的数值数组

    2024年02月04日
    浏览(40)
  • 【Python数据处理】-Pandas笔记

    Pandas是一个强大的Python数据处理库,它提供了高效的数据结构和数据分析工具,使数据处理变得简单而快速。本篇笔记将介绍Pandas中最常用的数据结构——Series和DataFrame,以及数据处理的各种操作和技巧。 (一)创建Series Series是Pandas中的一维数组,类似于带有标签的NumPy数组

    2024年02月12日
    浏览(45)
  • Python 列表 sort()函数使用详解

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 sort() 可以对列表进行 「排序」 语法 参数 key :(可选)指定排序规则 reverse :(可选)升序降序 返回值 返回

    2024年02月13日
    浏览(37)
  • 【Python床头书】python Pandas中的append方法详解

    本文将详细介绍Python Pandas中的 append 方法,包括其原理、用法、示例(含结果输出)、源码分析和官方链接。 目录 原理 用法 示例(含结果输出) 源码分析 官方链接 原理 append 方法用于在Pandas DataFrame中追加行数据。它将另一个DataFrame、Series或类似字典的对象的数据添加到调

    2024年02月03日
    浏览(31)
  • Python Pandas中的append方法详解

    本文将详细介绍Python Pandas中的 append 方法,包括其原理、用法、示例(含结果输出)、源码分析和官方链接。 目录 原理 用法 示例(含结果输出) 源码分析 官方链接 原理 append 方法用于在Pandas DataFrame中追加行数据。它将另一个DataFrame、Series或类似字典的对象的数据添加到调

    2024年02月05日
    浏览(38)
  • 【新手解答】Python中Pandas的初学者笔记

    🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长! 前些天发现了一个人工智能学习网站,内容深入浅出、易于理解。如果对人工智能感兴趣,不妨点击查看。 一位CSDN好友询问是否有 python里的p

    2024年03月14日
    浏览(61)
  • python数据分析学习笔记之matplotlib、numpy、pandas

    为了学习机器学习,在此先学习以下数据分析的matplotlib,numpy,pandas,主要是为自己的学习做个记录,如有不会的可以随时查阅。希望大家可以一起学习共同进步,我们最终都可以说:功不唐捐,玉汝于成。就算遇到困难也不要气馁,大声说:我不怕,我敏而好学!! 把大量

    2024年02月08日
    浏览(59)
  • (九)Pandas表格样式 学习简要笔记 #Python #CDA学习打卡

    目录 一. Pandas表格样式 1)举例数据 2)字体颜色 3)背景高亮 4)极值背景高亮 (a)高亮最大值 highlight_max() (b)高亮最小值 highlight_min() (c)同时高亮最大值与最小值 5)横向对比 (a)标记出每个学生的单科最高分数 axis (b)选定一列的最大值高亮 subset 6)背景渐变 

    2024年04月26日
    浏览(34)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(99)
  • PYthon 时间序列数据重采样-resample()方法(Pandas篇-23)

    PYthon 时间序列数据重采样-resample()方法(Pandas篇-23)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹

    2024年01月19日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包