pandas索引与赋值操作、排序以及Series排序和DataFrame排序方式

 更新时间:2023年09月13日 09:50:51   作者:learning-striving  
这篇文章主要介绍了pandas索引与赋值操作、排序以及Series排序和DataFrame排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、pandas索引操作

索引操作,使用索引选取序列和切片选择数据,也可以直接使用列名、行名称,或组合使用

  • 直接使用行列索引:行列索引名顺序为先列再行,使用指定行列索引名,不能使用下标
  • loc[行索引名,列索引名]:先行再列,只能使用指定的行列索引名,不能使用下标
  • iloc[行,列]:先行再列,只能使用索引下标获取数据,不能使用指定行列索引名
  • 下标索引与指定行列索引相结合:使用index或columns.get_indexer,见案例

代码如下

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
num
# 传入标签索引
column = ['第一列', '第二列', '第三列', '第四列', '第五列']   # 列标签索引
# ind = ['第一行', '第二行', '第三行']    # 行标签索引
ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data = pd.DataFrame(num, columns=column, index=ind)
data
-------------------------------------------------------------------
data['第五列']['第_2_行']    # 只能先列再行
data['第_2_行']['第五列']    # 先行再列,报错
data.loc['第_0_行':'第_2_行', '第三列']    # 先行再列,loc只能使用指定行列索引,切取第三列中[0,2]行中的数据
data.loc[:'第_2_行', '第三列':]   # loc只能使用指定行列索引,切取[0,2]行,3-最后一列的数据
data.iloc[:2, 2:]   # iloc只能使用下标索引,切取[0,2)行,3-最后一列的数据

数据生成

 

操作如下 

下标索引与指定行列索引相结合

data.loc[data.index[0:2], ['第二列', '第三列', '第五列']]   # 下标索引与指定行列索引相结合
data.iloc[0:2, data.columns.get_indexer(['第二列', '第三列', '第五列'])]  # 下标索引与指定行列索引相结合

二、pandas赋值操作

只能对某一列赋值,不能对一行赋值,有两种方式,直接使用索引用点.索引名,具体如下

代码如下 

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['第一列', '第二列', '第三列', '第四列', '第五列']   # 列标签索引
# ind = ['第一行', '第二行', '第三行']    # 行标签索引
ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data2 = pd.DataFrame(num, columns=column, index=ind)
data2
------------------------------------------------------------
data2['第四列'] = 88   # 值可为字符串或汉字
data2
data2.第一列 = 99  # 方式二
data2

生成数据

 

操作如下

三、pandas排序

pandas排序有两种方式,一种是对索引进行排序,另一种是对内容进行排序

3.1 DataFrame排序

  • df.sort_values(by=, ascending=):单个键(列名)或多个键进行排序
  • by:指定排序参考的键
  • ascending:指定升序或降序
  • ascending=True:默认升序
  • ascending=False:降序
  • df.sort_index():给索引进行排序

代码如下 

data2.sort_values(by='第三列')  # 默认ascending=True,即升序排序
data2.sort_values(by='第三列', ascending=False)   # 根据第三列降序排序
data2.sort_values(by=['第一列', '第四列'], ascending=False)    # 根据多列降序排序
data2.sort_index()   # 给索引进行排序

操作演示 

3.2 Series排序

  • series.sort_values(ascending=True):series排序时,只有一列,不需要参数
  • series.sort_index(ascending=):根据索引排序,ascending指定升序或降序,默认升序

代码如下 

data2['第四列'].sort_values()    # 默认ascending=True,即将第四列升序排序
data2['第四列'].sort_values(ascending=False)    # ascending=False,将第四列降序排序
data2['第四列'].sort_index(ascending=False)    # ascending=False,根据索引将第四列降序排序
data2['第四列'].sort_index()    # 默认ascending=True,根据索引将第四列升序排序

操作演示 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python OpenCV图像模糊处理介绍

    Python OpenCV图像模糊处理介绍

    大家好,本篇文章主要讲的是Python OpenCV图像模糊处理介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 在vscode使用jupyter notebook出现bug及解决

    在vscode使用jupyter notebook出现bug及解决

    这篇文章主要介绍了在vscode使用jupyter notebook出现bug及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python3实现的画图及加载图片动画效果示例

    Python3实现的画图及加载图片动画效果示例

    这篇文章主要介绍了Python3实现的画图及加载图片动画效果,结合实例形式分析了Python3基于tkinter库进行图片加载动画效果的相关实现与使用技巧,需要的朋友可以参考下
    2018-01-01
  • python实现删除列表中某个元素的3种方法

    python实现删除列表中某个元素的3种方法

    这篇文章主要介绍了python实现删除列表中某个元素的3种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Pycharm学习教程(1) 定制外观

    Pycharm学习教程(1) 定制外观

    这篇文章主要介绍了最全的Pycharm学习教程第一篇如何定制外观,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 使用pycharm创建Django项目失败的解决方案

    使用pycharm创建Django项目失败的解决方案

    使用PyCharm创建Django项目时遇到无法运行的问题,可以检查Python的安装路径设置是否正确,在PyCharm的设置中找到项目解释器的位置,确保路径正确,如果不确定Python的安装位置,可以在命令提示符中使用“where Python”命令查询
    2024-09-09
  • Python流程控制 if else实现解析

    Python流程控制 if else实现解析

    这篇文章主要介绍了Python 流程控制 if else实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 利用python批量爬取百度任意类别的图片的实现方法

    利用python批量爬取百度任意类别的图片的实现方法

    这篇文章主要介绍了利用python批量爬取百度任意类别的图片的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Python异常信息的不同展现方法总结

    Python异常信息的不同展现方法总结

    在日常开发的过程中,当代码报错时,我们通常要不断打印、阅读traceback提示信息,来调试代码,这篇文章介绍了如何实现一个Exception Hooks,使得traceback模块的提示信息更加精确;同时还介绍了一些第三方库,这些库也提供了Exception Hooks的功能
    2022-11-11
  • 在Python中将元组转换为列表的方法详解

    在Python中将元组转换为列表的方法详解

    这两种Python 数据类型看起来很相似,但在上下文中却有不同的用法,元组和列表之间的主要区别在于它们的可变性,仅当您需要修改元素时才会将元组转换为列表,本文现在我们将深入研究将元组转换为列表的不同方法,需要的朋友可以参考下
    2023-09-09

最新评论