網站首頁 編程語言 正文
如果使用reset_index()方法,則可以將pandas.DataFrame,pandas.Series的索引索引(行名稱,行標簽)重新分配為從0開始的序列號(行號)。
如果將行號用作索引,則通過排序更改行的順序或刪除行并得到缺少的號碼時,重新索引會更容易。
當行名(行標簽)用作索引時,它也可用于刪除當前索引或恢復數據列。您可以使用set_index()和reset_index()將索引更改(重置)到另一列。
將描述以下內容。
使用reset_index()將索引重新分配給序列號
- 基本用法
- 刪除原始索引:參數drop
- 更改原始對象:參數inplace
使用reset_index()和set_index()將索引更改為另一列(重置)
以下面的數據為例。
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)
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(),則序列號將成為新索引,而原始索引將保留為新列。
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,則原始索引將被刪除并且不會保留。
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,則會更改原始對象。
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()將索引更改為另一列(重置)
如果將行名設置為索引而不是數字。
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列。
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,則會刪除原始索引。
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()。
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
注意,為方便起見,在此示例中將具有重疊值的列設置為索引,但是如果索引值不重疊(每個值都是唯一的),則更容易選擇數據。
原文鏈接:https://blog.csdn.net/qq_18351157/article/details/106751148
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-09-22 IO流技術中的File類
- 2022-04-25 淺談Golang?Slice切片如何擴容的實現_Golang
- 2022-08-13 Android?Gradle同步優化詳解_Android
- 2022-02-27 centos8安裝nginx時報錯Status:404
- 2022-07-30 Redis批量生成數據的實現_Redis
- 2022-12-30 python中的decode()與encode()深入理解_python
- 2023-04-26 Sklearn調優之網格搜索與隨機搜索原理詳細分析_python
- 2022-09-20 Redis?SCAN命令詳解_Redis
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支