pandas中df.rename()的具体使用

df.rename()用于更改行列的标签,即行列的索引。可以传入一个字典或者一个函数。在数据预处理中,比较常用。

官方文档:

DataFrame.rename(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors=‘ignore’)

参数解释:

创建实例

import pandas as pd
df = pd.DataFrame({'name':['zhao','qian','sun','wang'],'mark':[150,122,155,132],'gender':['female','female','male','male']})
df

name    mark    gender
0    zhao    150        female
1    qian    122        female
2    zhou    155        male
3    wang    132        male

mapper:dict or function

映射关系,可以是字典,也可以是一个函数。

df.rename({0:111})
    name    mark    gender
111    zhao    150        female #行索引从0变为111
1    qian    122        female
2    zhou    155        male
3    wang    132        male

df.rename(lambda x: x+11) #参数也可以是函数,索引都加了11
    name    mark    gender
11    zhao    150        female
12    qian    122        female
13    zhou    155        male
14    wang    132        male

index、columns、axis:

这3个参数作用类似,dataframe中有行和列两个方向,在改名时,需要指明改名的是行还是列(默认是行),使用df.rename(index = mapper)或者df.rename(columns=mapper)的形式,和df.rename(mapper,axis=0 or 1)的效果是一样的

df.rename(lambda x: x+'11',axis=1)
    name11    mark11    gender11  #列索引都加了11,name变为name11
0    zhao    150        female
1    qian    122        female
2    zhou    155        male
3    wang    132        male

df.rename(columns=lambda x: x+'11')#等价于上面,写法更简洁直观
    name11    mark11    gender11
0    zhao    150        female
1    qian    122        female
2    zhou    155        male
3    wang    132        male

copy:bool,default = True

默认为True,效果不清楚。。。文档就一句话,与会复制底层数据(also copy underlying data), 等一个课代表解答一下。

inplace:bool,default False

将结果返回赋值给原变量,无需再次将结果赋值给新变量。即df.rename(inplace=True)之后,df的值发生改变(pandas中好多方法都有这个参数,此处就演示了)

level int,level name,default none

针对多层索引,指定需要改名字的索引具体是哪一个。

df1 = pd.DataFrame([10,11,12,13],index=[['a','a','b','b'],[1,2,3,4],[4,3,2,1]],columns=['tt'])
df1
            tt #前三列都为索引
a    1    4    10
    2    3    11
b    3    2    12
    4    1    13

df1.rename(index={1:'dd'})
            tt#索引中所有的1都变成了dd
a    dd    4    10
    2    3    11
b    3    2    12
    4    dd    13

df1.rename(index={1:'dd'},level=1)
            tt#只有第2列索引改为dd(从0开始计数)
a    dd    4    10
    2    3    11
b    3    2    12
    4    1    13

errors:{‘ignore’, ‘raise’}, default ‘ignore’

发生错误的处理方式,ignore为忽略,raise为报错。比如改名字是,如果传入的参数中包含索引列没有的值,就会报错,ignore或者raise来决定错误的处理方式

df1
            tt #前三列都为索引
a    1    4    10
    2    3    11
b    3    2    12
    4    1    13

df1.rename(index={11:'dd'},level=1,errors='raise')
KeyError: '[11] not found in axis'#报错,11没在索引内

到此这篇关于pandas中df.rename()的具体使用的文章就介绍到这了,更多相关pandas df.rename()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Pandas查询数据df.query的使用

    目录 使用dataframe条件表达式查询 复杂条件查询 使用df.query可以简化查询 方法对比:使用df[(df[“a”] > 3) & (df[“b”]<5)]的方式:使用df.query(“a>3 & b<5”)的方式: df = pd.read_csv("beijing_tianqi_2018.csv") df.head()   ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo

  • pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]

    1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据选取的方式基本一致,本文主要以Dataframe为例进行介绍. 在Dataframe中选取数据大抵包括3中情况: 1)行(列)选取(单维度选取):df[].这种情况一次只能选取行或者列,即一次选取中,只能为行或者列设置筛选条件(只能为一个维度设置筛选条件). 2

  • Pandas中df.loc[]与df.iloc[]的用法与异同 

    目录 官网资料: 用 途: 输入参数注意: loc与iloc 实际用例: 官网资料: loc  :https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.htmliloc  : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html 用 途: 取数: 从dataframe中取 一

  • pandas 强制类型转换 df.astype实例

    废话不多说,大家还是直接看代码吧! import pandas as pd from matplotlib import pyplot as plt from datetime import datetime filename='sitka_weather_2014.csv' df=pd.read_csv(filename) print(df.dtypes) df[' Min Humidity']=df[' Min Humidity'].astype('float64') df=df.astyp

  • Pandas数据形状df.shape的实现

    pandas: shape()获取Dataframe的行数和列数 返回列数: df.shape[1] 返回行数: df.shape[0] 或者:len(df) 返回形状,即几行几列的数组 dataframe.shape() 执行df.shape会返回一个元组,该元组的第一个元素代表行数,第二个元素代表列数,这就是这个数据的基本形状,也是数据的大小 import pandas as pd df = pd.DataFrame([['liver','E',89,21,24,64], ['Arry','

  • Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用

    目录 1.数据框字段类型查看:df.dtypes 2.维度查看df.shape: 3.数据框的策略基本信息df.info(): 4.某一列格式df['列名'].dtype: 5.数据类型转换.astype: Pandas所支持的数据类型: Python,numpy都有自己的一套数据格式,它们之间的对应关系可参考如下表格: pandas默认的数据类型是int64,float64. 1.数据框字段类型查看:df.dtypes 数据框td_link_data如下 print(td_link_data)

  • pandas || df.dropna() 缺失值删除操作

    df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据. 官方函数说明: DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) Remove missing values. See the User Guide for more on which values are considered missing, and how to work with missing

  • Pandas缺失值删除df.dropna()的使用

    函数参数 函数形式:dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False) 参数: axis:0或’index’,表示按行删除:1或’columns’,表示按列删除. how:‘any’,表示该行/列只要有一个以上的空值,就删除该行/列:‘all’,表示该行/列全部都为空值,就删除该行/列. thresh:int型,默认为None.如果该行/列中,非空元素数量小于这个值,就删除该行/列. subset:子集.列表,按c

  • Pandas缺失值填充 df.fillna()的实现

    df.fillna主要用来对缺失值进行填充,可以选择填充具体的数字,或者选择临近填充. 官方文档 DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None) df.fillna(x)可以将缺失值填充为指定的值 import pandas as pd # 原数据 df = pd.DataFrame({'A':['a1','a1','a2','a2'], 'B

  • Pandas索引排序 df.sort_index()的实现

    df.sort_index()实现按索引排序,默认以从小到大的升序方式排列,如希望按降序排列,传入ascending = False import pandas as pd df = pd.DataFrame([['liver','E',89,21,24,64], ['Arry','C',36,37,37,57], ['Ack','A',57,60,18,84], ['Eorge','C',93,96,71,78], ['Oah','D',65,49,61,86] ], columns = ['

随机推荐