Pandas.DataFrame重置Series的索引index(reset_index)
如果使用reset_index()方法,則可以將pandas.DataFrame,pandas.Series的索引索引(行名稱,行標簽)重新分配為從0開始的序列號(行號)。
如果將行號用作索引,則通過排序更改行的順序或刪除行并得到缺少的號碼時,重新索引會更容易。
當行名(行標簽)用作索引時,它也可用于刪除當前索引或恢復數(shù)據(jù)列。您可以使用set_index()和reset_index()將索引更改(重置)到另一列。
將描述以下內(nèi)容。
使用reset_index()將索引重新分配給序列號
- 基本用法
- 刪除原始索引:參數(shù)drop
- 更改原始對象:參數(shù)inplace
使用reset_index()和set_index()將索引更改為另一列(重置)
以下面的數(shù)據(jù)為例。
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()。兩個參數(shù)的用法相同。
使用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
基本用法
由于索引已經(jīng)分散,因此將它們重新分配給從0開始的連續(xù)數(shù)字。
如果在不指定任何參數(shù)的情況下使用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
刪除原始索引:參數(shù)drop
如果參數(shù)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
更改原始對象:參數(shù)inplace
默認情況下,原始對象不會更改,并且會返回一個新對象,但是如果inplace參數(shù)為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()將索引更改為另一列(重置)
如果將行名設置為索引而不是數(shù)字。
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
如果要將原始索引保留為數(shù)據(jù)字符串,則可以在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
注意,為方便起見,在此示例中將具有重疊值的列設置為索引,但是如果索引值不重疊(每個值都是唯一的),則更容易選擇數(shù)據(jù)。
到此這篇關于Pandas.DataFrame重置Series的索引index(reset_index)的文章就介紹到這了,更多相關Pandas.DataFrame重置Series索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)網(wǎng)絡端口轉發(fā)和重定向的方法
這篇文章主要介紹了Python實現(xiàn)網(wǎng)絡端口轉發(fā)和重定向的方法,結合實例形式分析了Python基于threading和socket模塊實現(xiàn)端口轉發(fā)與重定向的具體操作技巧,需要的朋友可以參考下2016-09-09pyqt5 tablewidget 利用線程動態(tài)刷新數(shù)據(jù)的方法
今天小編就為大家分享一篇pyqt5 tablewidget 利用線程動態(tài)刷新數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python使用get_text()方法從大段html中提取文本的實例
今天小編就為大家分享一篇Python使用get_text()方法從大段html中提取文本的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08