Introduction to the method of modifying DataFrame column names in pandas (code example)

不言
Release: 2019-02-22 14:29:38
forward
5576 people have browsed it

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')
Copy after login

Now, I want to add itcolumnsName 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')
Copy after login

How to operate?

Solution

1. Modify through its own properties of the DataFrame.columns class:

1. Direct modification without brain assignment

>>> # 先解决`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
Copy after login

2. Use the .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)
Copy after login

3. Refer to the blog for the DataFrame.columns.strObject

Usedhelp(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)
Copy after login

2. Mapping modification method

>>> # 原博文依然用到了 lambda 表达式
>>> # 我就再生搬硬套一次, 把上面的复制过来
>>> # 蹩脚地用一个全局变量i, 和映射函数mapper()

>>> i = 0
>>> def mapper(x): # 映射函数即 mapper
    global i
    x += '_' + str(i)
    i += 1
    return x
dataset.rename(columns=mapper, inplace=True)
Copy after login

To summarize a little: the use of dictionary derivation and list derivation are very similar, the largest The difference is whether to choose square brackets or curly brackets

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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!