Pandas.DataFrame的行名和列名的修改
pandas.DataFrame行名(index)和列名(columns)的修改方法如下。
rename()
- 任意的行名(index)和列名(columns)的修改
add_prefix(), add_suffix()
- 列名的接頭詞和結(jié)尾詞的追加
index和columns元素的更新
- 行名和列名全部修改
接下來,對每個方法進(jìn)行說明。
rename()
- 多個行名和列名的修改
- 原DataFrame的修改(參數(shù)inplace)
- 使用lambda表達(dá)式和函數(shù)進(jìn)行批處理
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 ?33DataFrame.rename()
函數(shù)DataFrame.rename()可以對任意行和列的名稱進(jìn)行修改。
DataFrame.rename()的參數(shù)有index和columns,使用"{舊值:新值}"字典的形式進(jìn)行參數(shù)的指定。
index為行,columns為列。只想修改某行或者某列的時候,只需要單獨指定一個參數(shù)即可。
修改后,返回一個新的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多個行名和列名的修改
多個行名和列名可以同時修改。只需要追加參數(shù)(字典的元素)。
print(df.rename(columns={'A': 'a', 'C': 'c'}))
# a B c
# ONE 11 12 13
# TWO 21 22 23
# THREE 31 32 33原DataFrame的修改(參數(shù)inplace)
默認(rèn)的設(shè)置為原DataFrame不變,返回一個新的DataFrame。
當(dāng)參數(shù)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使用lambda表達(dá)式和函數(shù)進(jìn)行批處理
rename()的參數(shù)index和columns值也可以指定為函數(shù)方法。
比如,大小寫的轉(zhuǎn)換。
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表達(dá)式-無名函數(shù)的指定。
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()
列名的接頭詞和結(jié)尾詞的追加方法。add_prefix()和add_suffix()。
在方法的參數(shù)里指定接頭詞或者結(jié)尾詞。
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 ? 33add_prefix()和add_suffix()只能對列名(columns)進(jìn)行修改。想要對行名進(jìn)行修改的時候,可以參照上述lambda表達(dá)式的使用方法。
index和columns元素的更新
當(dāng)想要對DataFrame里全部的元素修改或更新的時候,可以使用rename()方法的參數(shù)index,columns進(jìn)行指定。
可以在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
此時,請注意,如果列表等的大?。ㄔ財?shù))與行數(shù)/列數(shù)不一致時,則會發(fā)生錯誤。
# df.index = [1, 2, 3, 4] # ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
到此這篇關(guān)于Pandas.DataFrame的行名和列名的修改的文章就介紹到這了,更多相關(guān)Pandas.DataFrame行名和列名修改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Django中views數(shù)據(jù)查詢使用locals()函數(shù)進(jìn)行優(yōu)化
這篇文章主要介紹了Django中views數(shù)據(jù)查詢使用locals()函數(shù)進(jìn)行優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
使用python制作游戲下載進(jìn)度條的代碼(程序說明見注釋)
這篇文章主要介紹了用python制作游戲下載進(jìn)度條的代碼(程序說明見注釋),代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
一文解密Python中_getattr_和_getattribute_的用法與區(qū)別
這篇文章主要為大家詳細(xì)介紹了Python中_getattr_和_getattribute_的用法與區(qū)別,文中通過一些簡單的示例為大家進(jìn)行了講解,需要的可以參考一下2023-01-01
解決pip安裝第三方庫,但PyCharm中卻無法識別的問題for mac
這篇文章主要介紹了解決pip安裝第三方庫,但PyCharm中卻無法識別的問題for mac,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
Python機(jī)器學(xué)習(xí)應(yīng)用之工業(yè)蒸汽數(shù)據(jù)分析篇詳解
本篇文章介紹了如何用Python進(jìn)行工業(yè)蒸汽數(shù)據(jù)分析的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下2022-01-01
Python的numpy庫下的幾個小函數(shù)的用法(小結(jié))
這篇文章主要介紹了Python的numpy庫下的幾個小函數(shù)的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python如何存儲數(shù)據(jù)到j(luò)son文件
這篇文章主要介紹了Python如何存儲數(shù)據(jù)到j(luò)son文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

