iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >分享8 个常用pandas的 index设置
  • 546
分享到

分享8 个常用pandas的 index设置

2024-04-02 19:04:59 546人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 将索引从 groupby 操作转换为列2. 使用现有的 DataFrame 设置索引3. 一些操作后重置索引4.排序后重置索引5.删除重复后重置索引6. 索引的直接赋值7.

1. 将索引从 groupby 操作转换为列

groupby分组方法是经常用的。比如下面通过添加一个分组列team来进行分组。


>>> df0["team"] = ["X", "X", "Y", "Y", "Y"]
>>> df0
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.039738  0.008414  0.226510    Y
4  0.581093  0.750331  0.133022    Y
>>> df0.groupby("team").mean()
             A         B         C
team                              
X     0.445453  0.248250  0.864881
Y     0.333208  0.306553  0.443828


默认情况下,分组会将分组列编程index索引。但是很多情况下,我们不希望分组列变成索引,因为可能有些计算或者判断逻辑还是需要用到该列的。因此,我们需要设置一下让分组列不成为索引,同时也能完成分组的功能。

有两种方法可以完成所需的操作,第一种是用reset_index,第二种是在groupby方法里设置as_index=False。个人更喜欢第二种方法,它只涉及两个步骤,更简洁。


>>> df0.groupby("team").mean().reset_index()
  team         A         B         C
0    X  0.445453  0.248250  0.864881
1    Y  0.333208  0.306553  0.443828
>>> df0.groupby("team", as_index=False).mean()
  team         A         B         C
0    X  0.445453  0.248250  0.864881
1    Y  0.333208  0.306553  0.443828


2. 使用现有的 DataFrame 设置索引

当然,如果已经读取数据或做完一些数据处理步骤后,我们可以通过set_index手动设置索引。


>>> df = pd.read_csv("data.csv", parse_dates=["date"])
>>> df.set_index("date")
            temperature  humidity
date                             
2021-07-01           95        50
2021-07-02           94        55
2021-07-03           94        56


这里有两点需要注意下:

  • set_index方法默认将创建一个新的 DataFrame。如果要就地更改df的索引,需要设置inplace=True

df.set_index(“date”, inplace=True)


  • 如果要保留将要被设置为索引的列,可以设置drop=False

df.set_index(“date”, drop=False)


3. 一些操作后重置索引

在处理 DataFrame 时,某些操作(例如删除行、索引选择等)将会生成原始索引的子集,这样默认的数字索引排序就乱了。如要重新生成连续索引,可以使用reset_index方法。


>>> df0 = pd.DataFrame(np.random.rand(5, 3), columns=list("ABC"))
>>> df0
          A         B         C
0  0.548012  0.288583  0.734276
1  0.342895  0.207917  0.995485
2  0.378794  0.160913  0.971951
3  0.039738  0.008414  0.226510
4  0.581093  0.750331  0.133022
>>> df1 = df0[df0.index % 2 == 0]
>>> df1
          A         B         C
0  0.548012  0.288583  0.734276
2  0.378794  0.160913  0.971951
4  0.581093  0.750331  0.133022
>>> df1.reset_index(drop=True)
          A         B         C
0  0.548012  0.288583  0.734276
1  0.378794  0.160913  0.971951
2  0.581093  0.750331  0.133022


通常,我们是不需要保留旧索引的,因此可将drop参数设置为True。同样,如果要就地重置索引,可设置inplace参数为True,否则将创建一个新的 DataFrame

4.排序后重置索引

当用sort_value排序方法时也会遇到这个问题,因为默认情况下,索引index跟着排序顺序而变动,所以是乱雪。如果我们希望索引不跟着排序变动,同样需要在sort_values方法中设置一下参数ignore_index即可。


>>> df0.sort_values("A")
          A         B         C team
3  0.039738  0.008414  0.226510    Y
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
0  0.548012  0.288583  0.734276    X
4  0.581093  0.750331  0.133022    Y
>>> df0.sort_values("A", ignore_index=True)
          A         B         C team
0  0.039738  0.008414  0.226510    Y
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.548012  0.288583  0.734276    X
4  0.581093  0.750331  0.133022    Y


5.删除重复后重置索引

删除重复项和排序一样,默认执行后也会打乱排序顺序。同理,可以在drop_duplicates方法中设置ignore_index参数True即可。


>>> df0
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.342895  0.207917  0.995485    X
2  0.378794  0.160913  0.971951    Y
3  0.039738  0.008414  0.226510    Y
4  0.581093  0.750331  0.133022    Y
>>> df0.drop_duplicates("team", ignore_index=True)
          A         B         C team
0  0.548012  0.288583  0.734276    X
1  0.378794  0.160913  0.971951    Y


6. 索引的直接赋值

当我们有了一个 DataFrame 时,想要使用不同的数据源或单独的操作来分配索引。在这种情况下,可以直接将索引分配给现有的 df.index


>>> better_index = ["X1", "X2", "Y1", "Y2", "Y3"]
>>> df0.index = better_index
>>> df0
           A         B         C team
X1  0.548012  0.288583  0.734276    X
X2  0.342895  0.207917  0.995485    X
Y1  0.378794  0.160913  0.971951    Y
Y2  0.039738  0.008414  0.226510    Y
Y3  0.581093  0.750331  0.133022    Y


7.写入CSV文件时忽略索引

数据导出到 CSV 文件时,默认 DataFrame 具有从 0 开始的索引。如果我们不想在导出的 CSV 文件中包含它,可以在to_csv方法中设置index参数。


>>> df0.to_csv("exported_file.csv", index=False)


如下所示,导出的 CSV 文件中,索引列未包含在文件中。

其实,很多方法中都有关于索引的设置,只不过大家一般比较关心数据,而经常忽略了索引,才导致继续运行时可能会报错。以上几个高频的操作都是有索引设置的,建议大家平时用的时候养成设置索引的习惯,这样会节省不少时间。

8.读取时指定索引列

很多情况下,我们的数据源是 CSV 文件。假设有一个名为的文件data.csv,包含以下数据。


date,temperature,humidity
07/01/21,95,50
07/02/21,94,55
07/03/21,94,56


默认情况下,pandas将会创建一个从0开始的索引行,如下:


>>> pd.read_csv("data.csv", parse_dates=["date"])
        date  temperature  humidity
0 2021-07-01           95        50
1 2021-07-02           94        55
2 2021-07-03           94        56


但是,我们可以在导入过程中通过将index_col参数设置为某一列可以直接指定索引列。


>>> pd.read_csv("data.csv", parse_dates=["date"], index_col="date")
            temperature  humidity
date                             
2021-07-01           95        50
2021-07-02           94        55
2021-07-03           94        56

到此这篇关于分享8 个常用pandas的 index设置的文章就介绍到这了,更多相关常用pandas的 index设置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 分享8 个常用pandas的 index设置

本文链接: https://www.lsjlt.com/news/160442.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分享8 个常用pandas的 index设置
    目录1. 将索引从 groupby 操作转换为列2. 使用现有的 DataFrame 设置索引3. 一些操作后重置索引4.排序后重置索引5.删除重复后重置索引6. 索引的直接赋值7....
    99+
    2024-04-02
  • Pandas中DataFrame的常用用法分享
    目录1.创建DataFrame2.选择数据3.修改数据4.数据排序5.数据统计6.数据合并7.数据分组8.数据透视表Pandas是Python中最流行的数据分析和处理工具之一,它提供...
    99+
    2023-05-16
    Pandas DataFrame常用用法 Pandas DataFrame用法 Pandas DataFrame
  • 5个实用的Pandas技巧分享
    本篇内容主要讲解“5个实用的Pandas技巧分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“5个实用的Pandas技巧分享”吧!目录Pandas技巧1&...
    99+
    2024-04-02
  • Pandas中八个常用option设置的示例详解
    目录前言1. 显示更多行2. 显示更多列3. 改变列宽4. 设置float列的精度5. 数字格式化显示用逗号格式化大值数字设置数字精度百分号格式化6. 更改绘图方法7. 配置info...
    99+
    2024-04-02
  • 7个有用的Pandas显示选项分享
    目录1、控制显示的行数2、控制显示的列数3、禁止科学记数法4、更改数据的浮点精度5、控制Float格式6、更改默认的Pandas绘图库7、重置显示选项总结Pandas是一个在数据科学...
    99+
    2022-12-08
    Pandas显示选项 Pandas显示
  • 8个JavaScript中高阶函数的运用分享
    目录函数作为参数传递函数作为返回值函数柯里化函数组合面向切面编程函数式编程闭包复杂的例子函数作为参数传递 高阶函数可以接受一个或多个函数作为参数,这些函数可以在高阶函数中被调用,实现...
    99+
    2023-05-16
    JavaScript高阶函数运用 JavaScript高阶函数
  • Pandas中常用option如何设置
    这篇文章主要介绍“Pandas中常用option如何设置”,在日常操作中,相信很多人在Pandas中常用option如何设置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pandas中常用option如何设置...
    99+
    2023-07-02
  • Pandas实用的技巧分享
    这篇文章主要讲解了“Pandas实用的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas实用的技巧分享”吧!01 使用apply拆分文本Pandas 中 apply 函数,应...
    99+
    2023-06-15
  • 分享8个令人震惊的HTML技巧
    本篇文章给大家带来了关于HTML 的相关知识,其中主要跟大家分享8个HTML 技巧,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。1. 捕获属性打开你的设备摄像头正如 input 标记具有 email、 text 和 password ...
    99+
    2023-05-14
    html 前端
  • 【整理分享】8 个实用Vue开发技巧
    本篇文章整理分享8 个很棒的 Vue 开发技巧,包括路由参数解耦、功能组件、样式范围、watch的高级使用、watch监听多个变量等,希望对大家有所帮助!1.路由参数解耦通常在组件中使用路由参数,大多数人会做以下事情。export defa...
    99+
    2023-05-14
    Vue
  • Python必备的8个最常用的内置函数分别是哪些
    Python必备的8个最常用的内置函数分别是哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python给我们内置了大量功能函数,官方文档上列出了69个,有些是我们是平时...
    99+
    2023-06-16
  • 20个Python常用技巧分享
    目录1.字符串反转2.每个单词的第一个字母大写3. 字符串查找唯一元素4.重复打印字符串和列表n次5.列表生成6.变量交换7.字符串拆分为子字符串列表8.多个字符串组合为一...
    99+
    2023-05-14
    Python常用技巧分享 Python常用技巧 Python技巧
  • 分享常用的3个C++小技巧
    目录1、头文件是引用<iostream.h>还是<iostream>?2、逗号分割表达式3、在main函数之前运行代码1、头文件是引用<iostream...
    99+
    2024-04-02
  • 十个Ubuntu常用的快捷键分享
    这篇文章主要介绍“十个Ubuntu常用的快捷键分享”,在日常操作中,相信很多人在十个Ubuntu常用的快捷键分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”十个Ubuntu常用的快捷键分享”的疑惑有所帮助!...
    99+
    2023-06-16
  • Python中常用的17个操作分享
    这篇文章主要讲解了“Python中常用的17个操作分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中常用的17个操作分享”吧!1. 交换变量有时候,当我们要交换两个变量的值时,...
    99+
    2023-06-02
  • 常用的29个CSS小技巧分享
    本篇内容主要讲解“常用的29个CSS小技巧分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常用的29个CSS小技巧分享”吧!1.清除图片下方出现几像素的空白间...
    99+
    2024-04-02
  • 5个非常实用的小程序UI设计模板分享
    在互联网飞速发展的时代,手机逐渐成为工作、学习和生活的必需品。小程序作为一种无需下载和安装即可使用的应用程序,因其快速、方便、强大的功能而受到用户的喜爱。小程序无处不在,随时可用,用完就走。随着需求市场的逐步扩大,许多开发团队也致力于小程序...
    99+
    2023-09-03
    微信小程序 小程序
  • 分享3个非常实用的 Python 模块
    目录一、Psutil二、Pendulum三、Pyfiglet一、Psutil Python当中的Psutil模块是个跨平台库,它能够轻松获取系统运行的进程和系统利用率,包括CPU、内...
    99+
    2024-04-02
  • 分享11个常用JavaScript小技巧
    目录1.通过条件判断向对象添加属性2.检查对象中是否存在某个属性3.解构赋值4.循环遍历一个对象的key和value5.使用可选链(Optionalchaining)避免访问对象属性...
    99+
    2024-04-02
  • Linux下两个很常用的命令分享
    这篇文章主要介绍“Linux下两个很常用的命令分享”,在日常操作中,相信很多人在Linux下两个很常用的命令分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下两个很常用的命令分享”的疑惑有所帮助!...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作