pandas修改DataFrame列名的實(shí)現(xiàn)方法
提出問(wèn)題
存在一個(gè)名為dataset的DataFrame
>>> dataset.columns Index(['age', 'job', 'marital', 'education', 'default', 'housing', 'loan', 'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays', 'previous', 'poutcome', 'emp.var.rate', 'cons.price.idx', 'cons.conf.idx', 'euribor3m', 'nr.employed', 'y'], dtype='object')
現(xiàn)在, 我要將其columns名字改為:
>>> new_columns Index(['age_0', 'job_1', 'marital_2', 'education_3', 'default_4', 'housing_5', 'loan_6', 'contact_7', 'month_8', 'day_of_week_9', 'duration_10', 'campaign_11', 'pdays_12', 'previous_13', 'poutcome_14', 'emp.var.rate_15', 'cons.price.idx_16', 'cons.conf.idx_17', 'euribor3m_18', 'nr.employed_19', 'y_20'], dtype='object')
該如何操作?
解決
一.通過(guò)DataFrame.columns類的自身屬性修改:
1.無(wú)腦賦值直接修改
>>> # 先解決`new_columns`的推導(dǎo)問(wèn)題 >>> # 列表推導(dǎo) >>> new_columns_list = [column_str+'_'+str(i) for i ,column_str in enumerate(dataset.columns)] >>> # 類型轉(zhuǎn)換 >>> new_columns = pd.core.indexes.base.Index(new_columns_list) >>> dataset.columns = new_columns
2.通過(guò).map(mapper, na_action=None)函數(shù)來(lái)修改
>>> # 注:mapper 多運(yùn)用 lambda 表達(dá)式 >>> # 但我似乎沒(méi)有找到在 lambda 表達(dá)式中改變兩個(gè)值的方法 >>> # 所以只能蹩腳地用一個(gè)全局變量i, 和映射函數(shù)mapper() >>> # 希望大家能幫我找到方法 >>> i = 0 >>> def mapper(x): # 映射函數(shù)即 mapper global i x += '_' + str(i) i += 1 return x >>> dataset.columns.map(mapper)
3.參考博客用到了DataFrame.columns.str對(duì)象
用help(DataFrame.columns.str)翻遍了文檔,
也沒(méi)能找到可以被我拿來(lái)套用的方法, 想著抽時(shí)間把這段文檔翻譯一下
二.通過(guò)DataFrame.rename()函數(shù)來(lái)修改
1.暴力字典法(好處:可以只修改特定的列)
>>> # 此處先用字典推導(dǎo)法 >>> new_dict = { key:key+'_'+str(i) for i, key in enumerate(dataset.columns) } >>> dataset.rename(columns=new_dict, inplace=True)
2.映射修改法
>>> # 原博文依然用到了 lambda 表達(dá)式 >>> # 我就再生搬硬套一次, 把上面的復(fù)制過(guò)來(lái) >>> # 蹩腳地用一個(gè)全局變量i, 和映射函數(shù)mapper() >>> i = 0 >>> def mapper(x): # 映射函數(shù)即 mapper global i x += '_' + str(i) i += 1 return x dataset.rename(columns=mapper, inplace=True)
稍微總結(jié)一下 : 字典推導(dǎo)和列表推導(dǎo)的使用方法很類似, 最大的區(qū)別是選擇中括號(hào)還是大括號(hào)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python控制臺(tái)中實(shí)現(xiàn)進(jìn)度條功能
這篇文章主要介紹了python控制臺(tái)中實(shí)現(xiàn)進(jìn)度條功能的方法,想要了解的朋友可以參考一下2015-11-11python統(tǒng)計(jì)RGB圖片某像素的個(gè)數(shù)案例
這篇文章主要介紹了python統(tǒng)計(jì)RGB圖片某像素的個(gè)數(shù)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python 網(wǎng)頁(yè)解析HTMLParse的實(shí)例詳解
這篇文章主要介紹了Python 網(wǎng)頁(yè)解析HTMLParse的實(shí)例詳解的相關(guān)資料,python里提供了一個(gè)簡(jiǎn)單的解析模塊HTMLParser類,使用起來(lái)也是比較簡(jiǎn)單的,解析語(yǔ)法沒(méi)有用到XPath類似的簡(jiǎn)潔模式,需要的朋友可以參考下2017-08-08Python連接數(shù)據(jù)庫(kù)并批量插入包含日期記錄的操作
這篇文章主要介紹了Python連接數(shù)據(jù)庫(kù)并批量插入包含日期記錄的操作,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫(kù)模塊
這篇文章介紹了Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫(kù)模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05Python?數(shù)據(jù)篩選功能實(shí)現(xiàn)
這篇文章主要介紹了Python?數(shù)據(jù)篩選,無(wú)論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時(shí)候,數(shù)據(jù)篩選總會(huì)涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下2023-04-04Pygame實(shí)戰(zhàn)練習(xí)之推箱子游戲
推箱子想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的推箱子小游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09