脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Pandas.DataFrame重置Series的索引index(reset_index)

Pandas.DataFrame重置Series的索引index(reset_index)

2023-03-02 11:56饺子大人 Python

本文主要介绍了Pandas.DataFrame重置Series的索引index(reset_index),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

如果使用reset_index()方法,则可以将pandas.DataFrame,pandas.Series的索引索引(行名称,行标签)重新分配为从0开始的序列号(行号)。

如果将行号用作索引,则通过排序更改行的顺序或删除行并得到缺少的号码时,重新索引会更容易。

当行名(行标签)用作索引时,它也可用于删除当前索引或恢复数据列。您可以使用set_index()和reset_index()将索引更改(重置)到另一列。

将描述以下内容。

使用reset_index()将索引重新分配给序列号

  • 基本用法
  • 删除原始索引:参数drop
  • 更改原始对象:参数inplace

使用reset_index()和set_index()将索引更改为另一列(重置)

以下面的数据为例。

?
1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
 
df = pd.read_csv('./data/21/sample_pandas_normal.csv')
print(df)
#       name  age state  point
# 0    Alice   24    NY     64
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 4    Ellen   24    CA     88
# 5    Frank   30    NY     57

该示例为pandas.DataFrame,但pandas.Series也具有reset_index()。两个参数的用法相同。

使用reset_index()将索引重新分配给序列号

使用sort_values()对行进行排序以进行说明。有关排序的详细信息,请参见以下文章。

pandas.DataFrame,Series排序(sort_values,sort_index)

?
1
2
3
4
5
6
7
8
9
df.sort_values('state', inplace=True)
print(df)
#       name  age state  point
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70
# 4    Ellen   24    CA     88
# 0    Alice   24    NY     64
# 5    Frank   30    NY     57
# 3     Dave   68    TX     70

基本用法

由于索引已经分散,因此将它们重新分配给从0开始的连续数字。

如果在不指定任何参数的情况下使用reset_index(),则序列号将成为新索引,而原始索引将保留为新列。

?
1
2
3
4
5
6
7
8
9
df_r = df.reset_index()
print(df_r)
#    index     name  age state  point
# 0      1      Bob   42    CA     92
# 1      2  Charlie   18    CA     70
# 2      4    Ellen   24    CA     88
# 3      0    Alice   24    NY     64
# 4      5    Frank   30    NY     57
# 5      3     Dave   68    TX     70

删除原始索引:参数drop

如果参数drop为True,则原始索引将被删除并且不会保留。

?
1
2
3
4
5
6
7
8
9
df_r = df.reset_index(drop=True)
print(df_r)
#       name  age state  point
# 0      Bob   42    CA     92
# 1  Charlie   18    CA     70
# 2    Ellen   24    CA     88
# 3    Alice   24    NY     64
# 4    Frank   30    NY     57
# 5     Dave   68    TX     70

更改原始对象:参数inplace

默认情况下,原始对象不会更改,并且会返回一个新对象,但是如果inplace参数为True,则会更改原始对象。

?
1
2
3
4
5
6
7
8
9
df.reset_index(inplace=True, drop=True)
print(df)
#       name  age state  point
# 0      Bob   42    CA     92
# 1  Charlie   18    CA     70
# 2    Ellen   24    CA     88
# 3    Alice   24    NY     64
# 4    Frank   30    NY     57
# 5     Dave   68    TX     70

使用reset_index()和set_index()将索引更改为另一列(重置)

如果将行名设置为索引而不是数字。

?
1
2
3
4
5
6
7
8
9
10
df = pd.read_csv('./data/21/sample_pandas_normal.csv', index_col=0)
print(df)
#          age state  point
# name
# Alice     24    NY     64
# Bob       42    CA     92
# Charlie   18    CA     70
# Dave      68    TX     70
# Ellen     24    CA     88
# Frank     30    NY     57

如果使用reset_index()方法,则将序列号设置为索引,并将原始索引添加到data列。

?
1
2
3
4
5
6
7
8
9
df_r = df.reset_index()
print(df_r)
#       name  age state  point
# 0    Alice   24    NY     64
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 4    Ellen   24    CA     88
# 5    Frank   30    NY     57

如果将set_index()照原样应用于原始DataFrame,则会删除原始索引。

?
1
2
3
4
5
6
7
8
9
10
df_s = df.set_index('state')
print(df_s)
#        age  point
# state           
# NY      24     64
# CA      42     92
# CA      18     70
# TX      68     70
# CA      24     88
# NY      30     57

如果要将原始索引保留为数据字符串,则可以在reset_index()之后使用set_index()。

?
1
2
3
4
5
6
7
8
9
10
df_rs = df.reset_index().set_index('state')
print(df_rs)
#           name  age  point
# state                    
# NY       Alice   24     64
# CA         Bob   42     92
# CA     Charlie   18     70
# TX        Dave   68     70
# CA       Ellen   24     88
# NY       Frank   30     57

注意,为方便起见,在此示例中将具有重叠值的列设置为索引,但是如果索引值不重叠(每个值都是唯一的),则更容易选择数据。

到此这篇关于Pandas.DataFrame重置Series的索引index(reset_index)的文章就介绍到这了,更多相关Pandas.DataFrame重置Series索引内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_18351157/article/details/106751148

延伸 · 阅读

精彩推荐
  • PythonPython实现Const详解

    Python实现Const详解

    这篇文章主要介绍了Python实现Const的方法的相关资料,需要的朋友可以参考下 ...

    脚本之家5722020-05-20
  • PythonPython读取Excel表格,并同时画折线图和柱状图的方法

    Python读取Excel表格,并同时画折线图和柱状图的方法

    今天小编就为大家分享一篇Python读取Excel表格,并同时画折线图和柱状图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    落叶居士-朱家意14162021-04-07
  • PythonPython生成器的使用方法和示例代码

    Python生成器的使用方法和示例代码

    今天小编就为大家分享一篇关于Python生成器的使用方法和示例代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    阏男秀12242021-06-04
  • PythonPython pygame实现中国象棋单机版源码

    Python pygame实现中国象棋单机版源码

    今天给大家带来的是关于Python实战的相关知识,文章围绕着用Python pygame实现中国象棋单机版展开,文中有非常详细的代码示例,需要的朋友可以参考下...

    -小黄怪-5032021-12-05
  • PythonPython实现繁體转为简体的方法示例

    Python实现繁體转为简体的方法示例

    这篇文章主要介绍了Python实现繁體转为简体的方法,涉及Python编码转换相关操作技巧,需要的朋友可以参考下...

    Tangzongyu1237092021-05-03
  • PythonPytest接口自动化测试框架搭建模板

    Pytest接口自动化测试框架搭建模板

    这篇文章主要介绍了Pytest接口自动化测试框架搭建模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    Nonevx9522021-09-27
  • Python一文详解Python中哈希表的使用

    一文详解Python中哈希表的使用

    哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。本文将站在开发者的角度,带着大家一起探究哈希的世界,感兴趣的小伙伴可以跟...

    一枚大果壳8632022-12-25
  • PythonPython中使用插入排序算法的简单分析与代码示例

    Python中使用插入排序算法的简单分析与代码示例

    这篇文章主要介绍了Python使用插入排序算法的简单分析与代码示例,插入算法的平均时间复杂度为O(n^2),需要的朋友可以参考下...

    Python教程网4672020-08-22