我们在使用drop函数删除指定值的行后,原来的索引还是保留的!这可能会在后续的处理中,出现一些莫名其妙的错误。因此如果可以,最好drop完重置一下索引(个人看法)。

就比如我在做pd.concat时候,竟然合并完,多出了几行。。。


下面举一个例子来讲解:

import pandas as pd
import numpy as np#create dataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],'points': [18, np.nan, 19, 14, 14, 11, 20, 28],'assists': [5, 7, 7, 9, 12, np.nan, 9, 4],'rebounds': [11, 8, 10, 6, 6, 5, np.nan, 12]})#view DataFrame
print(df)
  team  points  assists  rebounds
0    A    18.0      5.0      11.0
1    B     NaN      7.0       8.0
2    C    19.0      7.0      10.0
3    D    14.0      9.0       6.0
4    E    14.0     12.0       6.0
5    F    11.0      NaN       5.0
6    G    20.0      9.0       NaN
7    H    28.0      4.0      12.0

现在假设我们使用 dropna函数从数据帧中删除任何列中缺少值的所有行:

#drop rows with nan values in any column
df = df.dropna()#view updated DataFrame
print(df)
  team  points  assists  rebounds
0    A    18.0      5.0      11.0
2    C    19.0      7.0      10.0
3    D    14.0      9.0       6.0
4    E    14.0     12.0       6.0
7    H    28.0      4.0      12.0

可以看到,索引仍包含每行的原始索引值

要在使用 dropna函数后重置索引,我们可以使用以下语法:

#drop rows with nan values in any column
df = df.dropna().reset_index(drop=True)#view updated DataFrame
print(df)
  team  points  assists  rebounds
0    A    18.0      5.0      11.0
1    C    19.0      7.0      10.0
2    D    14.0      9.0       6.0
3    E    14.0     12.0       6.0
4    H    28.0      4.0      12.0

这时候,已删除具有缺失值的每一行,并重置了索引值。索引值现在的范围为 0 到 4。


当然,在任何时候你都可以使用重置索引:

df.reset_index(drop=True)

注意,drop=True如果不写,那原始的索引列还会在,从而多出了新索引一列。如果可以,建议加上。

【技巧】Pandas使用drop后使用reset_index重置索性相关推荐

  1. python 重置索引_Pandas的reset_index()重置索引列

    来源: pandas中的reset_index() 数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引. imp ...

  2. python 重置索引_python pandas 对series和dataframe的重置索引reindex方法

    reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex( ...

  3. pandas水平concat后出现NaN值

    pandas水平拼接 result = pd.concat([df1, df2, df3,...], axis=1) 问题原因: 如果排除本身每个df自身有NaN值外,出现这种情况就是各df的索引顺序 ...

  4. pandas使用drop函数删除dataframe中指定索引列表对应位置的数据行(drop multiple rows in dataframe with integer index)

    pandas使用drop函数删除dataframe中指定索引列表对应位置的数据行(drop multiple rows in dataframe with  integer index) 目录

  5. linux密码忘记grub登陆,Linux忘记密码后使用grub重置密码

    Linux忘记密码后使用grub重置密码 Jul 5, 2013 Technology Linux忘记密码后,可以通过修改Grub启动参数来进行修复, 举Ubuntu13.04为例: 出现Grub菜单 ...

  6. pandas中drop用法_机器学习笔记:Pandas的delete、drop函数的用法

    机器学习笔记:Pandas的delete.drop函数的用法 目录drop函数 Axis(轴)含义 drop用法实验 delete函数 drop函数 DataFrame.drop(labels=Non ...

  7. 使用pandas的drop函数删除数据

    使用pandas的drop对数据进行删除操作 drop函数参数详解 DataFrame.drop(labels=None, axis=0, index=None, columns=None, leve ...

  8. vuex状态持久化:vuex-persistedstate解决刷新浏览器后vuex状态重置问题

    一.问题和原因 问题和现象:刷新浏览器后vuex状态重置 原因:vuex将数据保存在cache(运行内存)中,内存中的数据是临时数据,刷新浏览器就会释放.类似于js创建一个变量,刷新浏览器变量会销毁, ...

  9. ubuntu18.04忘记密码后,如何重置密码的方法

    ubuntu18.04安装在VMware虚拟上. ubuntu18.04忘记密码后,如何重置密码? 重启系统后,当跳出如下图所示画面时,按住Shift键不放,等待. 2. 但出现如下图所示画面时,松开 ...

最新文章

  1. 学习WINDOWS内核好书
  2. Python:windows程序打包
  3. 使用wowza和xuggler将RTMP转换为RTSP
  4. C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因
  5. Leetcode - 143. Reorder List
  6. 数据结构上机实践第五周项目3 - 括号的匹配
  7. idea javafx添加maven_IntelliJ IDEA使用之JavaFX
  8. PLSQL_海量数据处理系列7_DBSM_STATS
  9. 一道SQL题考你数据库的使用能力
  10. 计算机视觉 CS231n Course Introduction
  11. 通俗易懂的理解BiLSTM-CRF模型中的CRF层
  12. 轻松斩断信息安全黑手!就这?
  13. qlistview 自定义控件_是否可以将自定义小部件添加到QListView中?
  14. 物联网的体系结构分为_物联网体系结构分为哪三层
  15. Foobar2000使用学习
  16. Self-Supervised Gait Encoding with Locality-Aware Attention for Person Re-Identification阅读
  17. Android音乐播放器的比较。
  18. OpenGL(预备篇3)---OpenGL编程环境配置 vs2017篇---GLM---(自己动手系列)
  19. 回放线上流量利器-GoReplay
  20. RPG Maker更改界面分辨率并且制作炫酷界面

热门文章

  1. 科技创新催生新动能,“云游戏+”打通数字经济任督二脉
  2. 京东——实时数仓治理与实战
  3. Java各大厂面试题 百度 阿里 腾讯 京东 头条等
  4. Android忘记密码功能实现
  5. 因果推断系列15----双重差分法
  6. ZYNQ-基于BRAM的PS和PL数据交互
  7. 改进公司代码版本管理工具CCMS及优化开发流程
  8. 基于 webmagic 的知乎爬取[GitHub]
  9. proteus中的各类开关及其使用
  10. 四级英语图表作文真题计算机,英语四级图表作文写作技巧