【Python】pandas:排序、重复值、缺省值处理、合并、分组

Pandas数据处理指南

pandas是Python的扩展库(第三方库),为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。

pandas官方文档:User Guide — pandas 2.2.2 documentation (pydata.org)

帮助:可使用help(...)查看函数说明文档(若是第三方库的函数,需先导入库)。例如:help(pd.DataFrame),help(pd.concat)


Python代码中,导入pandas:

import pandas as pd


1、排序

(1-1)按索引排序:sort_index

sort_index(self, axis: 'Axis' = 0, level: 'Level | None' = None, ascending: 'bool | int | Sequence[bool | int]' = True, inplace: 'bool' = False, kind: 'str' = 'quicksort', na_position: 'str' = 'last', sort_remaining: 'bool' = True, ignore_index: 'bool' = False, key: 'IndexKeyFunc' = None)

注:默认axis=0 按行轴(按索引)排序,ascending=True 升序,inplace=False 不替换原DataFrame,na_position='last' NaN值在最后。

  • DataFrame.sort_index( ):按索引升序排列,默认NaN值在最后。
  • DataFrame.sort_index(ascending=False, na_position='first'):按索引降序排列,NaN值在最前面。
  • DataFrame.sort_index(key=函数):索引先传入函数操作,再按操作过的索引升序排列,默认NaN值在最后。

  • DataFrame.sort_index( ):多索引,按第一列索引升序排列。
  • DataFrame.sort_index(ascending=False):多索引,按第一列索引降序排列。
  • DataFrame.sort_index(level=指定索引列号):多索引,按指定索引列升序排列,默认其他索引也接着排序。
  • DataFrame.sort_index(level=指定索引列号, sort_remaining=False):多索引,按指定索引列升序排列,其他索引不排序。
  • DataFrame.sort_index(key=函数):索引先传入函数操作,再按操作过的索引升序排列。
  • 注:参数na_position对多索引不适用。

参数axis默认为0,按行索引排序。若axis=1,则按列索引排序。

(1-2)按数值排序:sort_values

sort_values(self, by, axis: 'Axis' = 0, ascending=True, inplace: 'bool' = False, kind: 'str' = 'quicksort', na_position: 'str' = 'last', ignore_index: 'bool' = False, key: 'ValueKeyFunc' = None)

注:默认axis=0 按行轴排序,ascending=True 升序,inplace=False 不替换原DataFrame,na_position='last' NaN值在最后。

  • DataFrame.sort_values(by=指定列 ):按指定列(多列,用列表表示)升序排列,默认NaN值在最后。
  • DataFrame.sort_values(by=指定列, ascending=False, na_position='first'):按指定列(多列,用列表表示)降序排列,NaN值在最前面。
  • DataFrame.sort_values(by=指定列, key=函数):指定列的数据先传入函数操作,再按操作过的数据升序排列,默认NaN值在最后。

参数axis默认为0,按指定列的数据排序。若axis=1,则按指定行的数据排序。

(1-3)指定列升序排序,显示前n行:nsmallest

nsmallest(self, n: 'int', columns: 'IndexLabel', keep: 'str' = 'first') -> 'DataFrame'

  • DataFrame.nsmallest(n, 指定列名):按指定列升序排列,并显示前n行。
  • DataFrame.nsmallest(n, 指定列名, keep=重复数据指定显示方式):按指定列升序排列,并显示前n行,若指定列数据相同,默认keep='first' 按数据顺序显示。若keep='last' 按数据倒序显示,若keep='all' 按顺序显示所有相同数据。
  • 注:DataFrame.nsmallest(n, 指定列名) 等同于DataFrame.sort_values(指定列名, ascending=True).head(n),但nsmallest性能更高。

若多列排序,排序列含有NaN,则NaN也会显示出来。

只能对数值列排序。

(1-4)指定列降序排序,显示前n行:nlargest

nlargest(self, n: 'int', columns: 'IndexLabel', keep: 'str' = 'first') -> 'DataFrame'

  • DataFrame.nlargest(...) 同DataFrame.nsmallest(...) 用法相同,区别是nsmallest升序排列,nlargest降序排列。
  • 注:DataFrame.nlargest(n, 指定列名) 等同于 DataFrame.sort_values(指定列名, ascending=False).head(n),但nlargest性能更高。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yannan20190313

感谢您的支持。祝好心情。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值