成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

pandas 修改 DataFrame 列名

LeexMuller / 997人閱讀

摘要:本文參考自修改列名原博客針對每個中的元素做相同的修改操作而拙作是對每個元素做不同操作的生搬硬套請大家不吝賜教提出問題存在一個名為的現(xiàn)在我要將其名字改為該如何操作解決一通過類的自身屬性修改無腦賦值直接修改先解決的推導(dǎo)問題列表推導(dǎo)類型轉(zhuǎn)換通過函

本文參考自:pandas 修改 DataFrame 列名
原博客針對每個DataFrame.columns中的元素做相同的修改操作
拙作是對每個元素做不同操作的生搬硬套, 請大家不吝賜教

提出問題

存在一個名為datasetDataFrame

>>> 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 多運(yùn)用 lambda 表達(dá)式
>>> # 但我似乎沒有找到在 lambda 表達(dá)式中改變兩個值的方法
>>> # 所以只能蹩腳地用一個全局變量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 表達(dá)式
>>> # 我就再生搬硬套一次, 把上面的復(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ū)別是選擇中括號還是大括號 寫在最后 十分歡迎大家直接修改拙作或提出建議!??!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/43217.html

相關(guān)文章

發(fā)表評論

0條評論

LeexMuller

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<