前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技巧】Pandas使用drop后使用reset_index重置索性

【技巧】Pandas使用drop后使用reset_index重置索性

作者头像
小锋学长生活大爆炸
发布2023-03-01 14:05:05
7770
发布2023-03-01 14:05:05
举报

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

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

下面举一个例子来讲解:

代码语言:javascript
复制
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)
代码语言:javascript
复制
  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函数从数据帧中删除任何列中缺少值的所有行:

代码语言:javascript
复制
#drop rows with nan values in any column
df = df.dropna()

#view updated DataFrame
print(df)
代码语言:javascript
复制
  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函数后重置索引,我们可以使用以下语法:

代码语言:javascript
复制
#drop rows with nan values in any column
df = df.dropna().reset_index(drop=True)

#view updated DataFrame
print(df)
代码语言:javascript
复制
  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。

当然,在任何时候你都可以使用重置索引:
代码语言:javascript
复制
df.reset_index(drop=True)

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档