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`的推導問題 >>> # 列表推導 >>> 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.暴力字典法(好處:可以只修改特定的列)
>>> # 此處先用字典推導法
>>> new_dict = {
key:key+'_'+str(i)
for i, key in enumerate(dataset.columns)
}
>>> dataset.rename(columns=new_dict, inplace=True)
2.映射修改法
>>> # 原博文依然用到了 lambda 表達式 >>> # 我就再生搬硬套一次, 把上面的復制過來 >>> # 蹩腳地用一個全局變量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)
稍微總結一下 : 字典推導和列表推導的使用方法很類似, 最大的區(qū)別是選擇中括號還是大括號
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python算法測試結果自動保存到excel表格的實現(xiàn)步驟
我們在進行算法評估是通常會針對每個樣本的算法處理結果進行統(tǒng)計,例如每個樣本正確預測數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測試結果自動保存到excel表格的實現(xiàn)步驟,感興趣的朋友可以參考下2023-12-12
在ubuntu16.04中將python3設置為默認的命令寫法
這篇文章主要介紹了在ubuntu16.04中將python3設置為默認python的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-10-10
python利用pymysql和openpyxl實現(xiàn)操作MySQL數(shù)據(jù)庫并插入數(shù)據(jù)
這篇文章主要為大家詳細介紹了如何使用Python連接MySQL數(shù)據(jù)庫,并從Excel文件中讀取數(shù)據(jù),將其插入到MySQL數(shù)據(jù)庫中,有需要的小伙伴可以參考一下2023-10-10
Python內(nèi)置數(shù)據(jù)結構列表與元組示例詳解
這篇文章主要給大家介紹了關于Python內(nèi)置數(shù)據(jù)結構列表與元組的相關資料,列表是順序存儲的數(shù)據(jù)結構,類似于數(shù)據(jù)結構中的順序表,在存儲上是相連的一大塊內(nèi)存空間,在物理和邏輯上都是連續(xù)的,需要的朋友可以參考下2021-08-08

