您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Pandas.DataFrame的行名和列名如何修改”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Pandas.DataFrame的行名和列名如何修改”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
pandas.DataFrame行名(index)和列名(columns)的修改方法如下
rename()
任意的行名(index)和列名(columns)的修改
add_prefix(), add_suffix()
列名的接頭詞和結尾詞的追加
index和columns元素的更新
行名和列名全部修改
接下來,對每個方法進行說明。
rename()
多個行名和列名的修改
原DataFrame的修改(參數inplace)
使用lambda表達式和函數進行批處理
add_prefix(), add_suffix()
index和columns元素的更新
首先,先生成一個DaraFrame。
import pandas as pd df = pd.DataFrame({'A': [11, 21, 31], 'B': [12, 22, 32], 'C': [13, 23, 33]}, index=['ONE', 'TWO', 'THREE']) print(df) # A B C # ONE 11 12 13 # TWO 21 22 23 # THREE 31 32 33
函數DataFrame.rename()可以對任意行和列的名稱進行修改。
DataFrame.rename()的參數有index和columns,使用"{舊值:新值}"字典的形式進行參數的指定。
index為行,columns為列。只想修改某行或者某列的時候,只需要單獨指定一個參數即可。
修改后,返回一個新的DataFrame,原DataFrame并沒有被修改。
df_new = df.rename(columns={'A': 'a'}, index={'ONE': 'one'}) print(df_new) # a B C # one 11 12 13 # TWO 21 22 23 # THREE 31 32 33 print(df) # A B C # ONE 11 12 13 # TWO 21 22 23 # THREE 31 32 33
多個行名和列名可以同時修改。只需要追加參數(字典的元素)。
print(df.rename(columns={'A': 'a', 'C': 'c'})) # a B c # ONE 11 12 13 # TWO 21 22 23 # THREE 31 32 33
默認的設置為原DataFrame不變,返回一個新的DataFrame。
當參數inplace為True時,原DataFrame將會被修改。返回值為None。
df_org = df.copy() df_org.rename(columns={'A': 'a'}, index={'ONE': 'one'}, inplace=True) print(df_org) # a B C # one 11 12 13 # TWO 21 22 23 # THREE 31 32 33
rename()的參數index和columns值也可以指定為函數方法。
比如,大小寫的轉換。
print(df.rename(columns=str.lower, index=str.title)) # a b c # One 11 12 13 # Two 21 22 23 # Three 31 32 33
lambda表達式-無名函數的指定。
print(df.rename(columns=lambda s: s*3, index=lambda s: s + '!!')) # AAA BBB CCC # ONE!! 11 12 13 # TWO!! 21 22 23 # THREE!! 31 32 33
列名的接頭詞和結尾詞的追加方法。add_prefix()和add_suffix()。
在方法的參數里指定接頭詞或者結尾詞。
print(df.add_prefix('X_')) # X_A X_B X_C # ONE 11 12 13 # TWO 21 22 23 # THREE 31 32 33 print(df.add_suffix('_X')) # A_X B_X C_X # ONE 11 12 13 # TWO 21 22 23 # THREE 31 32 33
add_prefix()和add_suffix()只能對列名(columns)進行修改。想要對行名進行修改的時候,可以參照上述lambda表達式的使用方法。
當想要對DataFrame里全部的元素修改或更新的時候,可以使用rename()方法的參數index,columns進行指定。
可以在index,columns屬性中指定List,tuple,pandas.Series等。
df.index = [1, 2, 3] df.columns = ['a', 'b', 'c'] print(df) # a b c # 1 11 12 13 # 2 21 22 23 # 3 31 32 33
此時,請注意,如果列表等的大小(元素數)與行數/列數不一致時,則會發生錯誤。
# df.index = [1, 2, 3, 4] # ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
讀到這里,這篇“Pandas.DataFrame的行名和列名如何修改”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。