pandas 修改 DataFrame 列名

2021-09-12 17:02:16 字數 2056 閱讀 8955

本文參考自: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')

現在, 我要將其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')

1.無腦賦值直接修改
>>> # 先解決`new_columns`的推導問題

>>> # 列表推導

>>> new_columns_list = [column_str+'_'+str(i) for i ,column_str in enumerate(dataset.columns)]

>>> # 型別轉換

>>> new_columns = pd.core.indexes.base.index(new_columns_list)

>>> dataset.columns = new_columns

>>> # 但我似乎沒有找到在 lambda 表示式中改變兩個值的方法

>>> # 希望大家能幫我找到方法

>>> i = 0

global i

x += '_' + str(i)

i += 1

return x

3.參考部落格用到了dataframe.columns.str物件

help(dataframe.columns.str)翻遍了文件,

也沒能找到可以被我拿來套用的方法, 想著抽時間把這段文件翻譯一下

1.暴力字典法(好處:可以只修改特定的列)

>>> # 此處先用字典推導法

>>> new_dict =

>>> dataset.rename(columns=new_dict, inplace=true)

2.對映修改法
>>> # 原博文依然用到了 lambda 表示式

>>> # 我就再生搬硬套一次, 把上面的複製過來

>>> i = 0

global i

x += '_' + str(i)

i += 1

return x

稍微總結一下 : 字典推導和列表推導的使用方法很類似, 最大的區別是選擇中括號還是大括號

Pandas統計分析基礎之DataFrame

3 更改dataframe中的資料 4 增加dataframe中的資料 刪除dataframe中的資料 dataframe類似於資料庫的表或者excel的 panda將資料讀取之後,以dataframe的資料結構儲存在記憶體中。下面就來介紹一下dataframe的增刪查改操作。因為dataframe...

pandas 修改 DataFrame 列名

本文參考自 pandas 修改 dataframe 列名 原部落格針對每個dataframe.columns中的元素做相同的修改操作 而拙作是對每個元素做不同操作的生搬硬套,請大家不吝賜教 存在乙個名為dataset的dataframe dataset.columns index age job m...

Spark 解析XML檔案到DataFrame

公司遇到一點需求,平時load檔案基本上都是csv格式的檔案,可是就有那麼乙個檔案是xml檔案,這也正常,因為檔案是別的team推過來的,自然要遵循他們的格式,於是就要想辦法解析xml檔案。目標是把xml檔案轉換為dataframe,然後寫到表中。可是spark.reader並沒有讀取xml格式檔案...