Home >Backend Development >Python Tutorial >Introduction to the method of modifying DataFrame column names in pandas (code example)
This article brings you an introduction to the method of modifying DataFrame column names in pandas (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
This article is referenced from: pandas Modify DataFrame column name
The original blog does the same modification operation for each element in DataFrame.columns
But my humble work is a mechanical copy of doing different operations for each element. Please feel free to enlighten me
Ask a question
There is a DataFrame named dataset
>>> 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')
Now, I want to add itcolumns
Name changed to:
>>> 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')
How to operate?
Solution
1. Modify through its own properties of the DataFrame.columns class:
>>> # 先解决`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
.map(mapper, na_action=None)
function to modify >>> # 注:mapper 多运用 lambda 表达式 >>> # 但我似乎没有找到在 lambda 表达式中改变两个值的方法 >>> # 所以只能蹩脚地用一个全局变量i, 和映射函数mapper() >>> # 希望大家能帮我找到方法 >>> i = 0 >>> def mapper(x): # 映射函数即 mapper global i x += '_' + str(i) i += 1 return x >>> dataset.columns.map(mapper)
DataFrame.columns.str
ObjectUsedhelp(DataFrame.columns.str)
I searched through the documents,
I couldn’t find one that I could use Applying the method, I want to take the time to translate this document
2. Modify it through the DataFrame.rename() function
1. Violent dictionary method (benefits : You can only modify specific columns)
>>> # 此处先用字典推导法 >>> new_dict = { key:key+'_'+str(i) for i, key in enumerate(dataset.columns) } >>> dataset.rename(columns=new_dict, inplace=True)
>>> # 原博文依然用到了 lambda 表达式 >>> # 我就再生搬硬套一次, 把上面的复制过来 >>> # 蹩脚地用一个全局变量i, 和映射函数mapper() >>> i = 0 >>> def mapper(x): # 映射函数即 mapper global i x += '_' + str(i) i += 1 return x dataset.rename(columns=mapper, inplace=True)
The above is the detailed content of Introduction to the method of modifying DataFrame column names in pandas (code example). For more information, please follow other related articles on the PHP Chinese website!