Pandas 数据预处理-中|学习笔记

简介: 快速学习 Pandas 数据预处理-中

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践Pandas 数据预处理-中】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15389


Pandas 数据预处理-中

 

内容简介:

一、直接解决数据转换内容

二、Replacing Value(替换值)

三、Renaming Axis Indexes(重命名 Axis Indexes)

 

一、直接解决数据转换内容

可以直接用下面这个方法来解决数据转换的问题,

data[‘food’].map(lambda x: meat_to_animal[x.lower()])
0 pig
1 pig
2 pig
3 cow
4 cow
5 pig
6 cow
7 pig
8 salmon
Name: food,dtype:.object

直接在food上面把它解决掉,用map函数,然后里面用了一个lambda函数,x赋的每一列值,
使用map是一个很简便的方法,用于element-wise转换和其他一些数据清洗操作。

 

二、Replacing Value(替换值)

下一个数据转换的内容是替换值,其实fillna是一个特殊的替换操作,可以把空替换成0,1等等数字都可以。

Map可以用于修改一个object里的部分值,但是replace能提供一个更简单的和更灵活的的方法做到这个替换。

下面来看一下replace来替换这个值的方法:

data= pd.Series([1.,-999.,2.,-999.,-1000.,3.])// 这里是构建一个series,有这样几个值
data
0 1.0
1 -999.0
2 2.0
3 -999.0
4 -1000.0
5 3.0
dtype:float64

这里-999可能是用来表示缺失值的标识符,不是用NA表示,是用-999来表示用NA来替代的话,用replace替换掉,会产生一个新series(除非使用inplace=True)

data.replace(-999, np.nan)//将-999替换掉nan
0 1.0
1 NaN
2  2.0
3  NaN
4 -1000.0
5 3.0
dtype:float64

如果想要一次替换多个值,直接用一个list即可:

data.replace([-999, -1000],np.nan)//将-999和1000都替换成nan
0 1.0
1 NaN
2 2.0
3 NaN
4 NaN
5 3.0
dtype:float64

对于不同的值用不同的替换值,也是导入一个list,示例如下:

data.replace([-999, -1000],[np.nan, 0])//将-999替换成nan,将1000替换成0

0 1.0
1 NaN
2 2.0
3 NaN
4 0.0
5 3.0
dtype:float64
参数也可以是一个dict:

data.replace(f-999:np.nan,-1000:0])
0 1.0
1 NaN
2 2.0
3  NaN
4 0.0
5 3.0
dtype:float64
 

三、Renaming Axis Indexes(重命名 Axis Indexes)

像是series里的value一样,axis label也能类似的是函数或映射来转换,产生一个新的object。当然也可以设置in-place不产生新的数据,示例如下:

data = pd.DataFrame(np.arange(12).reshape((3, 4)),

index=[‘Ohio’, ‘Colorado’, ‘New

York’],

columns=[‘one’, ‘two’, ‘three’, ‘four’])

Data

one two three four

Ohio         0   1    2    3

Colorado     4   5    6    7

New York    8   9    10   11

与series相同,axis index有一个map方法:

transform = lambda x:x[:4].upper()

transform

<function __main___.<lambda>(x)>

data.index

Index([‘Ohio’, ‘Colorado’, ‘NewYork’],  dty

‘object’)

data.index.map(transform)

Index([‘OHIO’, ‘COLO’, ‘NEW’)  dty

‘object’)

可以赋值给index,以in-place的方式修改DataFrame:

data.index=data.index.map(transform)

data

构造数据框,可以看到0-11,分为3行4列,行是Ohio,Colorado

New York,列是one,two,three,four,

与series相同,axis index有一个map方法来进行转换出来:

定义transform是一个lambda函数,x里取1到4,把它变成大写

看一下他的transform,然后再看一下data里的index的索引,这

里的索引显示的是默认行的索引,将索引用map来映射一下,

transform是一个lambda函数。

可以赋值给index,以in-place的方式修改DataFrame:

data.index = data.index.map(transform)
data

one two three four
OHIO  0    1    2    3
COLO  4    5    6     7
NEW   8    9    10    11

如果想要创建一个转换后的版本,而且不用修改原始数据,可以用rename:

data.rename(index=str.title,columns=str.upper)  

ONE TWO  THREE FOUR
Ohio  0    1    2    3
Colo  4    5    6    7
New   8    9    10   11

注意:rename能用于dict一样的object,

data.rename{index=‘OHIO’: ‘INDIANA’},
columns=(‘three’: ‘pekaboo’])
one two pekaboo four

image.gifrename能让用户避免陷入手动赋值给index和columns的杂务中。可以用inplace直接修改原始数据:

data.rename{index=‘OHIO’:‘INDIANA’}, inplace=True)

dataone two three four

相关文章
|
4月前
|
索引 Python
Pandas学习笔记之时间处理
Pandas学习笔记之时间处理
|
4月前
|
索引 Python
Pandas学习笔记之Dataframe
Pandas学习笔记之Dataframe
|
4月前
|
索引 Python
Pandas学习笔记之Series
Pandas学习笔记之Series
|
4月前
|
SQL Serverless 数据库
Pandas学习笔记之常用功能
Pandas学习笔记之常用功能
|
7月前
|
XML JSON 数据格式
Python Pandas PK esProc SPL,谁才是数据预处理王者?
Python Pandas PK esProc SPL,谁才是数据预处理王者?
|
7月前
|
数据采集 Python
利用Pandas对小费数据集进行数据预处理实战(附源码)
利用Pandas对小费数据集进行数据预处理实战(附源码)
296 0
|
机器学习/深度学习 决策智能 计算机视觉
Pandas库之DataFrame学习笔记
Pandas库之DataFrame学习笔记
180 0
|
SQL Java Go
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
389 0
|
数据采集 BI Python
对pandas进行数据预处理的实例讲解
对pandas进行数据预处理的实例讲解
|
数据处理 索引 Python
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
405 0