Pandas.DataFrame重置Series的索引index(reset_index)
如果使用reset_index()方法,則可以將pandas.DataFrame,pandas.Series的索引索引(行名稱(chēng),行標(biāo)簽)重新分配為從0開(kāi)始的序列號(hào)(行號(hào))。
如果將行號(hào)用作索引,則通過(guò)排序更改行的順序或刪除行并得到缺少的號(hào)碼時(shí),重新索引會(huì)更容易。
當(dāng)行名(行標(biāo)簽)用作索引時(shí),它也可用于刪除當(dāng)前索引或恢復(fù)數(shù)據(jù)列。您可以使用set_index()和reset_index()將索引更改(重置)到另一列。
將描述以下內(nèi)容。
使用reset_index()將索引重新分配給序列號(hào)
- 基本用法
- 刪除原始索引:參數(shù)drop
- 更改原始對(duì)象:參數(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()。兩個(gè)參數(shù)的用法相同。
使用reset_index()將索引重新分配給序列號(hào)
使用sort_values()對(duì)行進(jìn)行排序以進(jìn)行說(shuō)明。有關(guān)排序的詳細(xì)信息,請(qǐng)參見(jiàn)以下文章。
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開(kāi)始的連續(xù)數(shù)字。
如果在不指定任何參數(shù)的情況下使用reset_index(),則序列號(hào)將成為新索引,而原始索引將保留為新列。
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為T(mén)rue,則原始索引將被刪除并且不會(huì)保留。
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
更改原始對(duì)象:參數(shù)inplace
默認(rèn)情況下,原始對(duì)象不會(huì)更改,并且會(huì)返回一個(gè)新對(duì)象,但是如果inplace參數(shù)為T(mén)rue,則會(huì)更改原始對(duì)象。
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è)置為索引而不是數(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()方法,則將序列號(hào)設(shè)置為索引,并將原始索引添加到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()照原樣應(yīng)用于原始DataFrame,則會(huì)刪除原始索引。
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
注意,為方便起見(jiàn),在此示例中將具有重疊值的列設(shè)置為索引,但是如果索引值不重疊(每個(gè)值都是唯一的),則更容易選擇數(shù)據(jù)。
到此這篇關(guān)于Pandas.DataFrame重置Series的索引index(reset_index)的文章就介紹到這了,更多相關(guān)Pandas.DataFrame重置Series索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)網(wǎng)絡(luò)端口轉(zhuǎn)發(fā)和重定向的方法
這篇文章主要介紹了Python實(shí)現(xiàn)網(wǎng)絡(luò)端口轉(zhuǎn)發(fā)和重定向的方法,結(jié)合實(shí)例形式分析了Python基于threading和socket模塊實(shí)現(xiàn)端口轉(zhuǎn)發(fā)與重定向的具體操作技巧,需要的朋友可以參考下2016-09-09pyqt5 tablewidget 利用線(xiàn)程動(dòng)態(tài)刷新數(shù)據(jù)的方法
今天小編就為大家分享一篇pyqt5 tablewidget 利用線(xiàn)程動(dòng)態(tài)刷新數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python爬蟲(chóng)之爬取谷歌趨勢(shì)數(shù)據(jù)
這篇文章主要介紹了python爬蟲(chóng)之爬取谷歌趨勢(shì)數(shù)據(jù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲(chóng)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Python使用get_text()方法從大段html中提取文本的實(shí)例
今天小編就為大家分享一篇Python使用get_text()方法從大段html中提取文本的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08