使用熊猫怎么修改DataFrame列名

  介绍

这篇文章将为大家详细讲解有关使用熊猫怎么修改DataFrame列名,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>提出问题

存在一个名为数据集的DataFrame

在祝辞祝辞dataset.columns   指数([& # 39;年龄# 39;,,& # 39;工作# 39;,,& # 39;婚姻# 39;,,& # 39;教育# 39;,,& # 39;默认# 39;,,& # 39;住房# 39;,,& # 39;贷款,,   ,,,& # 39;接触# 39;,,& # 39;月# 39;,,& # 39;day_of_week& # 39;,, & # 39;时间# 39;,,& # 39;运动# 39;,,& # 39;pdays& # 39;   ,,,& # 39;先前# 39;,,& # 39;poutcome& # 39;,, & # 39; emp.var.rate& # 39;,, & # 39; cons.price.idx& # 39;   ,,,& # 39;cons.conf.idx& # 39;,, & # 39; euribor3m& # 39;,, & # 39; nr.employed& # 39;,, & # 39; y # 39;],   ,,dtype=& # 39;对象# 39;)

现在,我要将其列名字改为:

在祝辞祝辞new_columns   指数([& # 39;age_0& # 39;,, & # 39; job_1& # 39;,, & # 39; marital_2& # 39;,, & # 39; education_3& # 39;,, & # 39; default_4& # 39;,, & # 39; housing_5& # 39;,   ,,,& # 39;loan_6& # 39;,, & # 39; contact_7& # 39;,, & # 39; month_8& # 39;,, & # 39; day_of_week_9& # 39;,, & # 39; duration_10& # 39;   ,,,& # 39;campaign_11& # 39;,, & # 39; pdays_12& # 39;,, & # 39; previous_13& # 39;,, & # 39; poutcome_14& # 39;   ,,,& # 39;emp.var.rate_15& # 39;,, & # 39; cons.price.idx_16& # 39;,, & # 39; cons.conf.idx_17& # 39;   ,,,& # 39;euribor3m_18& # 39;,, & # 39; nr.employed_19& # 39;,, & # 39; y_20& # 39;],   ,才能dtype=& # 39;对象# 39;)

该如何操作?

<强>解决

一。通过DataFrame.columns类的自身属性修改:

1。无脑赋值直接修改

在祝辞祝辞,#,先解决“new_columns”的推导问题   在祝辞祝辞,#,列表推导   在祝辞祝辞,new_columns_list =, (column_str + & # 39; _ # 39; + str (i), for 小姐:,column_str 拷贝列举(dataset.columns)]   在祝辞祝辞,#,类型转换   在祝辞祝辞,new_columns =, pd.core.indexes.base.Index (new_columns_list)   祝辞祝辞祝辞,dataset.columns =, new_columns

2。通过。地图(mapper na_action=None)函数来修改

在祝辞祝辞,#,注:mapper 多运用,lambda 表达式   在祝辞祝辞,#,但我似乎没有找到在,lambda 表达式中改变两个值的方法   在祝辞祝辞,#,所以只能蹩脚地用一个全局变量我,,和映射函数映射器()   在祝辞祝辞,#,希望大家能帮我找到方法      在祝辞祝辞,小姐:=0   在祝辞祝辞,def 映射器(x):, #,映射函数即,映射器   ,global 我   +=x 才能;& # 39;_ # 39;,+,str(我)   小姐:才能+=1   return 才能;x   祝辞祝辞祝辞,dataset.columns.map (mapper)

3。参考博客用到了DataFrame.columns.str对象

用帮助(DataFrame.columns.str)翻遍了文档,

也没能找到可以被我拿来套用的方法,想着抽时间把这段文档翻译一下

<强>二。通过DataFrame.rename()函数来修改

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

在祝辞祝辞,#,此处先用字典推导法   在祝辞祝辞,new_dict =, {   关键:才能键+ & # 39;_ # 39;+ str(我)   for 我,才能,key 列举(dataset.columns)拷贝   ,,}   在祝辞祝辞,dataset.rename(列=new_dict,原地=True)

2。映射修改法

在祝辞祝辞,#,原博文依然用到了,lambda 表达式   在祝辞祝辞,#,我就再生搬硬套一次,,把上面的复制过的来   在祝辞祝辞,#,蹩脚地用一个全局变量我,,和映射函数映射器()      在祝辞祝辞,小姐:=0   在祝辞祝辞,def 映射器(x):, #,映射函数即,映射器   ,global 我   +=x 才能;& # 39;_ # 39;,+,str(我)   小姐:才能+=1   return 才能;x   dataset.rename(列=映射器,原地=True)

关于使用熊猫怎么修改DataFrame列名就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用熊猫怎么修改DataFrame列名