【技巧】Pandas使用drop后使用reset_index重置索性
我们在使用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重置索性相关推荐
- python 重置索引_Pandas的reset_index()重置索引列
来源: pandas中的reset_index() 数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引. imp ...
- python 重置索引_python pandas 对series和dataframe的重置索引reindex方法
reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex( ...
- pandas水平concat后出现NaN值
pandas水平拼接 result = pd.concat([df1, df2, df3,...], axis=1) 问题原因: 如果排除本身每个df自身有NaN值外,出现这种情况就是各df的索引顺序 ...
- pandas使用drop函数删除dataframe中指定索引列表对应位置的数据行(drop multiple rows in dataframe with integer index)
pandas使用drop函数删除dataframe中指定索引列表对应位置的数据行(drop multiple rows in dataframe with integer index) 目录
- linux密码忘记grub登陆,Linux忘记密码后使用grub重置密码
Linux忘记密码后使用grub重置密码 Jul 5, 2013 Technology Linux忘记密码后,可以通过修改Grub启动参数来进行修复, 举Ubuntu13.04为例: 出现Grub菜单 ...
- pandas中drop用法_机器学习笔记:Pandas的delete、drop函数的用法
机器学习笔记:Pandas的delete.drop函数的用法 目录drop函数 Axis(轴)含义 drop用法实验 delete函数 drop函数 DataFrame.drop(labels=Non ...
- 使用pandas的drop函数删除数据
使用pandas的drop对数据进行删除操作 drop函数参数详解 DataFrame.drop(labels=None, axis=0, index=None, columns=None, leve ...
- vuex状态持久化:vuex-persistedstate解决刷新浏览器后vuex状态重置问题
一.问题和原因 问题和现象:刷新浏览器后vuex状态重置 原因:vuex将数据保存在cache(运行内存)中,内存中的数据是临时数据,刷新浏览器就会释放.类似于js创建一个变量,刷新浏览器变量会销毁, ...
- ubuntu18.04忘记密码后,如何重置密码的方法
ubuntu18.04安装在VMware虚拟上. ubuntu18.04忘记密码后,如何重置密码? 重启系统后,当跳出如下图所示画面时,按住Shift键不放,等待. 2. 但出现如下图所示画面时,松开 ...
最新文章
- 学习WINDOWS内核好书
- Python:windows程序打包
- 使用wowza和xuggler将RTMP转换为RTSP
- C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因
- Leetcode - 143. Reorder List
- 数据结构上机实践第五周项目3 - 括号的匹配
- idea javafx添加maven_IntelliJ IDEA使用之JavaFX
- PLSQL_海量数据处理系列7_DBSM_STATS
- 一道SQL题考你数据库的使用能力
- 计算机视觉 CS231n Course Introduction
- 通俗易懂的理解BiLSTM-CRF模型中的CRF层
- 轻松斩断信息安全黑手!就这?
- qlistview 自定义控件_是否可以将自定义小部件添加到QListView中?
- 物联网的体系结构分为_物联网体系结构分为哪三层
- Foobar2000使用学习
- Self-Supervised Gait Encoding with Locality-Aware Attention for Person Re-Identification阅读
- Android音乐播放器的比较。
- OpenGL(预备篇3)---OpenGL编程环境配置 vs2017篇---GLM---(自己动手系列)
- 回放线上流量利器-GoReplay
- RPG Maker更改界面分辨率并且制作炫酷界面