标签:ica 多个 scala ast alt png 常用 python ble
Pandas数据处理——盘点那些常用的函数(下)原创 易执 Python读财 1月20日
点击上方“Python读数”,选择“星标”公众号
重磅干货,第一时间送达
继上一篇文章Pandas数据处理——盘点那些常用的函数(上)后,这篇文章整理了剩下的一些Pandas常见方法,整体难度会比上一篇文章中的大一点,但还是比较容易理解的。话不多说,直接进入正题。
用于演示的数据如下:
In [11]: data
Out[11]:
company gender salary age
0 B female 30 40.0
1 A female 36 31.0
2 B female 35 28.0
3 B female 9 18.0
4 B female 16 43.0
5 A male 46 22.0
6 B female 15 28.0
7 B female 33 40.0
8 C male 19 32.0
作用对象:Series和DataFrame
主要用途:修改字段的数据类型,数据量大的情况下可用于减小数据占用的内存,多用于Series。
用法:
# 把age字段转为int类型
In [12]: data["age"] = data["age"].astype(int)
In [13]: data
Out[13]:
company gender salary age
0 B female 30 40
1 A female 36 31
2 B female 35 28
3 B female 9 18
4 B female 16 43
5 A male 46 22
6 B female 15 28
7 B female 33 40
8 C male 19 32
作用对象:Series,DataFrame(大多数情况下)
主要用途:多用于修改DataFrame的列名
主要参数:
# 将‘age‘更改为员工编号‘number‘,并作用于原对象
In [15]: data.rename(columns={‘age‘:‘number‘},inplace=True)
In [16]: data
Out[16]:
company gender salary number
0 B female 30 40
1 A female 36 31
2 B female 35 28
3 B female 9 18
4 B female 16 43
5 A male 46 22
6 B female 15 28
7 B female 33 40
8 C male 19 32
作用对象:DataFrame
主要用途:将DataFrame中的某一(多)个字段设置为索引
用法:
In [19]: data.set_index(‘number‘,inplace=True)
In [20]: data
Out[20]:
company gender salary
number
40 B female 30
31 A female 36
28 B female 35
18 B female 9
43 B female 16
22 A male 46
28 B female 15
40 B female 33
32 C male 19
作用对象:Series,DataFrame
主要用途:重置索引,默认重置后的索引为0~len(df)-1
主要参数:
# drop = True,重置索引,并把原有的索引丢弃
In [22]: data.reset_index(drop=True)
Out[22]:
company gender salary
0 B female 30
1 A female 36
2 B female 35
3 B female 9
4 B female 16
5 A male 46
6 B female 15
7 B female 33
8 C male 19
# drop = False,重置索引
# 原索引列‘number‘作为新字段进入DataFrame
In [23]: data.reset_index(drop=False,inplace=True)
In [24]: data
Out[24]:
number company gender salary
0 40 B female 30
1 31 A female 36
2 28 B female 35
3 18 B female 9
4 43 B female 16
5 22 A male 46
6 28 B female 15
7 40 B female 33
8 32 C male 19
作用对象:Series,DataFrame
主要用途:去掉重复值,作用和SQL中的distinct类似
用法:
In [26]: data[‘company‘].drop_duplicates()
Out[26]:
0 B
1 A
8 C
Name: company, dtype: object
作用对象:Series,DataFrame
主要用途:常用于删掉DataFrame中的某些字段
主要参数:
# 删掉‘gender‘列
In [27]: data.drop(columns = [‘gender‘])
Out[27]:
number company salary
0 40 B 30
1 31 A 36
2 28 B 35
3 18 B 9
4 43 B 16
5 22 A 46
6 28 B 15
7 40 B 33
8 32 C 19
作用对象:Series,DataFrame
主要用途:常用于构建布尔索引,对DataFrame的数据进行条件筛选
用法:
# 筛选出A公司和C公司的员工记录
In [29]: data.loc[data[‘company‘].isin([‘A‘,‘C‘])]
Out[29]:
number company gender salary
1 31 A female 36
5 22 A male 46
8 32 C male 19
主要用途:将连续变量离散化,比如将人的年龄划分为各个区间
主要参数:
# 按照0-33.33%,33.33%-66.67%,66.67%-100%百分位进行划分
In [35]: pd.qcut(data.salary,q = 3)
Out[35]:
0 (18.0, 33.667]
1 (33.667, 46.0]
2 (33.667, 46.0]
3 (8.999, 18.0]
4 (8.999, 18.0]
5 (33.667, 46.0]
6 (8.999, 18.0]
7 (18.0, 33.667]
8 (18.0, 33.667]
Name: salary, dtype: category
Categories (3, interval[float64]): [(8.999, 18.0] < (18.0, 33.667] < (33.667, 46.0]]
作用对象:Series,DataFrame
主要用途:将不符合条件的值替换掉成指定值,相当于执行了一个if-else
主要参数:
# 语句解析
# 若salary<=40,则保持原来的值不变
# 若salary大于40,则设置为40
In [38]: data[‘salary‘].where(data.salary<=40,40)
Out[38]:
0 30
1 36
2 35
3 9
4 16
5 40
6 15
7 33
8 19
Name: salary, dtype: int32
主要用途:将多个Series或DataFrame拼起来(横拼或者竖拼都可以)
主要参数:
# 分别取data的前三条和后三条为data1和data2
In [41]: data1 = data.head(3)
In [42]: data1
Out[42]:
number company gender salary
0 40 B female 30
1 31 A female 36
2 28 B female 35
In [43]: data2 = data.tail(3)
In [44]: data2
Out[44]:
number company gender salary
6 28 B female 15
7 40 B female 33
8 32 C male 19
# 拼接数据
In [45]: pd.concat([data1,data2],ignore_index = False)
Out[45]:
number company gender salary
0 40 B female 30
1 31 A female 36
2 28 B female 35
6 28 B female 15
7 40 B female 33
8 32 C male 19
# 拼接数据并重置索引
In [46]: pd.concat([data1,data2],ignore_index=True)
Out[46]:
number company gender salary
0 40 B female 30
1 31 A female 36
2 28 B female 35
3 28 B female 15
4 40 B female 33
5 32 C male 19
作用对象:DataFrame
主要用途:对DataFrame进行数据透视,相当于Excel中的数据透视表
主要参数:
# 从公司和性别两个维度对薪水进行数据透视
# 看看这两个维度下的平均薪资水平
In [47]: data.pivot_table(values = ‘salary‘,index = ‘company‘,
columns = ‘gender‘,aggfunc=np.mean)
Out[47]:
gender female male
company
A 36.0 46.0
B 23.0 NaN
C NaN 19.0
Pandas中常用的函数便整理到这里,至于map和apply这类的就不在此过多介绍了,详细的介绍可以看之前写过的文章。希望整理的这些函数能对大家有所帮助!
往期精彩回顾
Pandas数据处理——盘点那些常用的函数(上)
Pandas数据处理——一文详解数据拼接方法merge
Pandas数据分析——超好用的Groupby详解
Pandas数据处理三板斧,你会几板?
一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!
标签:ica 多个 scala ast alt png 常用 python ble
原文地址:https://blog.51cto.com/14915204/2525827