新聞中心
在Python的數(shù)據(jù)處理庫(kù)pandas中,數(shù)據(jù)框(DataFrame)是一種二維的表格型數(shù)據(jù)結(jié)構(gòu),它既有行索引也有列索引,在實(shí)際的數(shù)據(jù)分析過(guò)程中,我們可能需要對(duì)數(shù)據(jù)框的索引進(jìn)行一些操作,例如改變索引的名稱、順序等,本文將詳細(xì)介紹如何使用pandas庫(kù)來(lái)改變數(shù)據(jù)框的索引。

1、使用set_index()方法改變索引
set_index()方法是pandas中最常用的改變數(shù)據(jù)框索引的方法,它可以將一個(gè)或多個(gè)現(xiàn)有的列設(shè)置為新的索引,該方法的基本語(yǔ)法如下:
dataframe.set_index(keys, drop=True, inplace=False, verify_integrity=False, sort_values=False, append=True)
參數(shù)說(shuō)明:
keys:用于設(shè)置新索引的列名,可以是單個(gè)列名或列名列表。
drop:布爾值,表示是否刪除原來(lái)的索引,默認(rèn)為True。
inplace:布爾值,表示是否在原數(shù)據(jù)框上進(jìn)行修改,默認(rèn)為False,如果為True,則直接在原數(shù)據(jù)框上進(jìn)行修改;如果為False,則返回一個(gè)新的數(shù)據(jù)框。
verify_integrity:布爾值,表示是否檢查新索引是否唯一和完整,默認(rèn)為False。
sort_values:布爾值,表示是否對(duì)新索引進(jìn)行排序,默認(rèn)為False。
append:布爾值,表示是否將舊索引的值附加到新索引上,默認(rèn)為True。
示例:
import pandas as pd
創(chuàng)建一個(gè)數(shù)據(jù)框
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
將列'A'設(shè)置為新的索引
df.set_index('A', inplace=True)
print(df)
輸出結(jié)果:
B C
A
1 4 7
2 5 8
3 6 9
2、使用rename()方法重命名索引
rename()方法可以用于重命名數(shù)據(jù)框的行索引和列索引,該方法的基本語(yǔ)法如下:
dataframe.rename(columns=None, index=None, inplace=False)
參數(shù)說(shuō)明:
columns:用于重命名列名的字典,鍵為原列名,值為新列名,可以為空,表示不重命名任何列。
index:用于重命名行索引的字典,鍵為原行名,值為新行名,可以為空,表示不重命名任何行。
inplace:布爾值,表示是否在原數(shù)據(jù)框上進(jìn)行修改,默認(rèn)為False,如果為True,則直接在原數(shù)據(jù)框上進(jìn)行修改;如果為False,則返回一個(gè)新的數(shù)據(jù)框。
示例:
import pandas as pd
創(chuàng)建一個(gè)數(shù)據(jù)框
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
重命名列名為'X'、'Y'、'Z'和行名為'x'、'y'、'z'
df.rename(columns={'A': 'X', 'B': 'Y', 'C': 'Z'}, index={0: 'x', 1: 'y', 2: 'z'})
print(df)
輸出結(jié)果:
X Y Z
x 1 4 7
y 2 5 8
z 3 6 9
3、使用reset_index()方法重置索引
reset_index()方法可以將數(shù)據(jù)框的索引轉(zhuǎn)換為普通的列,并生成新的整數(shù)索引,該方法的基本語(yǔ)法如下:
dataframe.reset_index(level=None, drop=True, inplace=False)
參數(shù)說(shuō)明:
level:用于指定要重置的索引級(jí)別,可以為None、0或1,默認(rèn)為None,表示重置所有級(jí)別的索引,如果為0或1,則只重置指定級(jí)別的索引,可以為多個(gè)級(jí)別,用逗號(hào)分隔,如果不指定任何級(jí)別,則默認(rèn)重置所有級(jí)別的索引。
drop:布爾值,表示是否刪除原來(lái)的索引,默認(rèn)為True,如果為True,則刪除原來(lái)的索引;如果為False,則保留原來(lái)的索引作為新的一列,默認(rèn)情況下,原始索引被添加為新列“index”,如果要更改此名稱,請(qǐng)使用“name”參數(shù),請(qǐng)注意,僅當(dāng)您希望保留多級(jí)索引時(shí)才應(yīng)將其保留為False,否則建議使用“inplace”參數(shù)來(lái)避免復(fù)制數(shù)據(jù)框,有關(guān)詳細(xì)信息,請(qǐng)參閱MultiIndex部分,請(qǐng)注意“drop”和“inplace”不能同時(shí)為True,如果兩者都為True,則會(huì)引發(fā)錯(cuò)誤,如果您想在原地重置索引并刪除它,請(qǐng)首先調(diào)用“reset_index(inplace=True)”,然后調(diào)用“drop(columns=’index’)”,這會(huì)創(chuàng)建一個(gè)全新的副本并保留原始數(shù)據(jù)框不變,這是更安全的方法,有關(guān)詳細(xì)信息,請(qǐng)參閱文檔中的警告部分,有關(guān)更多信息和示例,請(qǐng)參見(jiàn)MultiIndex部分。
文章題目:pandas改變數(shù)據(jù)框索引
網(wǎng)站地址:http://m.5511xx.com/article/cohdojs.html


咨詢
建站咨詢
