pandas修改DataFrame列名的實現(xiàn)方法
提出問題
存在一個名為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')
該如何操作?
解決
一.通過DataFrame.columns類的自身屬性修改:
1.無腦賦值直接修改
>>> # 先解決`new_columns`的推導(dǎo)問題 >>> # 列表推導(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.通過.map(mapper, na_action=None)函數(shù)來修改
>>> # 注:mapper 多運用 lambda 表達式 >>> # 但我似乎沒有找到在 lambda 表達式中改變兩個值的方法 >>> # 所以只能蹩腳地用一個全局變量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對象
用help(DataFrame.columns.str)翻遍了文檔,
也沒能找到可以被我拿來套用的方法, 想著抽時間把這段文檔翻譯一下
二.通過DataFrame.rename()函數(shù)來修改
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 表達式 >>> # 我就再生搬硬套一次, 把上面的復(fù)制過來 >>> # 蹩腳地用一個全局變量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ū)別是選擇中括號還是大括號
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python統(tǒng)計RGB圖片某像素的個數(shù)案例
這篇文章主要介紹了python統(tǒng)計RGB圖片某像素的個數(shù)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python 網(wǎng)頁解析HTMLParse的實例詳解
這篇文章主要介紹了Python 網(wǎng)頁解析HTMLParse的實例詳解的相關(guān)資料,python里提供了一個簡單的解析模塊HTMLParser類,使用起來也是比較簡單的,解析語法沒有用到XPath類似的簡潔模式,需要的朋友可以參考下2017-08-08Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作
這篇文章主要介紹了Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫模塊
這篇文章介紹了Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫模塊,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05Python?數(shù)據(jù)篩選功能實現(xiàn)
這篇文章主要介紹了Python?數(shù)據(jù)篩選,無論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時候,數(shù)據(jù)篩選總會涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下2023-04-04