开发者学堂课程【高校精品课-华东师范大学-人工智能基础:Pandas-dataframe】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/920/detail/15575
Pandas-dataframe
内容介绍:
一、Pandas-dataframe 介绍
二、操作演示
一、Pandas-dataframe 介绍
修改 DataFrame 数据
Pandas 的 DataFrame 是一个二维数组对象,有行索引也有列索引,所以 DataFrame 也可以看成 Servises 的容器。
构建 DataFrame 的办法有很多,基本方法是使用 DataFrame()函数构造,格式如下:DataFrame(【data, index columns, dtype copy】)
data 为数据,index 设置索引,与 Servises 不同的事,二维数组的索引为行索引,列索引为后面的 columns,可以在dtype 上定义类型。可以从字典数据创建 DataFrame。
二、操作演示
I
n [
]
: import pandas as pd
dict={‘coli’:[1,2,5,7],’col2’:[‘a’,’b’,’c’,’d’]}
df=pd.DataFrame(dict)
df
out[3]:
col1 col2
0 1 a
1 2 b
2 5 c
3 7 d
I
n [4
]
: list a=[1,2,5,7]
I
n [5] : list b=[‘a’,’b’,’c’,’d’]
df=pd.DataFrame({‘col1’:lista,’col2’:listb})
I
n [6]: df
out[6]:
col1 col2
0 1 a
1 2 b
2 5 c
3 7 d
I
n [ ]: import pandas as pd
a= pd.DataFrame([[1,0,1,5]
[2,0,5,6]
[4,0,8,5]].colums =[“t1”,”t2”,”p1”])
a
out[9]:
t1 t2 p1
0 1 0.1 5
1 2 0.5 6
2 4 0.8 5
在前章内容中介绍文件访问时已经学习到 pandas 读写 csv 文件功能,例如 read_cav 函数可以读取 CSV 文件的数据,返回的是 DataFrame 对象。
I
n[ ]: import pandas as pd
data = pd.read_cav(‘datall.txt’,sep =’ ‘) #
指明分隔符,查看 d
ata
data
out[
10] Ht Wt Rt
0 1.5 40 thin
1 1.5 50 fat
2 1.5 60 fat
3 1.6 40 thin
4 1.6 50 thin
5 1.6 60 fat
6 1.6 70 fat
7 1.7 50 thin
8 1.7 60 thin
9 1.7 70 fat
10 1.7 80 fat
11 1.8 60 thin
12 1.8 70 thin
13 1.8 80 fat
14 1.8 90 fat
15 1.9 80 thin
16 1.9 90
fat
访问 dataFrame 这一操作是频繁的过程,需要特别熟悉,对 dataFrame 进行索引可以获取其中的一个或多个列,要注意列方向为名称。
I
n [ 11]: data[[‘Ht’,’Wt’]]
//
可以查看
Ht
和w
t
两列/
/
o
ut[11]
I
n[13]
:data
[0:3]
/
/
前三行索引
o
ut[13]:
Ht Wt Rt
0 1.5 40 thin
1 1.5 50 fat
2 1.5 60 fat
I
n [14 ]: data[data[[‘Wt’]<60]//
对数据进行简单过滤,查看重量小于6
0
的数据。
out[14]:
Ht Wt Rt
0 1.5 40 thin
1 1.5 50 fat
3 1.6 40 thin
4 1.6 50 thin
7 1.7 50 thin
//loc 和 iloc 函数可以说是 dataFrame 访问的升级版,有了他们不论是列还是行都能便捷获取。其中 loc 函数是按索引名抽取指定行列的数据,格式为 loc[行索引,列索引]//
I
n
[
15 ]: data.loc[[5,6],[‘Ht’,Wt’]] //5,6
是第6行第7行。后面是w
t.ht
两列。
out[15]
Ht wt
5 1.6 60
6 1.6 70
如果按名称还不方便,就可以使用 iloc 按位置访问,同样是行列两个参数。可以是下标值可以是列表,也可以是切片。使用方法 iloc[行参数,列参数]
In [16]: data.{loc[[5,6],[0,1]]
out[16]:
Ht Wt
5 1.6 60
6 1.6 70
In[17]: data.iloc[[5:10],[0,1]]
/
/
访问编号5-
10
的行和0,
1
两列/
/
File “<ipython-input-17-835fc967c207>”,line 1
data.iloc[[5:10],[0,1]]
syntaxError: invalid syntax
In[18]: data.iloc[[5:10],[0,1]]
o
ut[18]:
Ht wt
5 1.6 60
6 1.6 70
7 1.7 50
8 1.7 60
9 1.7 70
I
n [19]: data.iloc[5:10,:2]//
访问编号5-
10
的行,2之前的列。
o
ut[19]:
Ht Wt
5 1.6 60
6 1.6 70
7 1.7 50
8 1.7 60
9 1.7 70
修改 dataFrame 数据,如果 dataFrame 没有自定义 index 名称,则则使用列命令和行命令编号来访问,
I
n [20 ]:
import numpy as np
import pandas ns pd
df1=pd.DataFrame(np.arange(16)。reshape(4,4)
columns=
[
‘小白
兔’
,
‘
小白免
’
,
‘
小
熊猫’
,
‘小熊猫’]
df1
[
‘
小熊猫‘]’[
1]=22
d
f1[‘
小熊猫
’]=22
/
/
赋值,使用使用 column 列名修改整列/
/
d
f1 //
使用 n
umpy
创建了一个数字序列,形状为4乘4,列名分别为小白兔、小白兔、小熊猫、小熊猫,则使用column 列名和 i
ndex
行的编号来访问。/
/
o
ut[20]:
小白兔
小白兔
小熊猫
小熊猫
0 0 1 2 22
1 4 5 22 22
2 8 9 10 22
3 12 13 14 22
如果设置了 index 名称,可以方便的使用 column 列名和 index 名称来访问。
In [ 21 ]: import numpy as np
df1=pd.DataFrame(np.arange(16)。reshape(4.4)
index=[‘BJ’,’SH’,’GZ’,’SZ’], //index
设置了城市北京、上海、广州、深圳。/
/
columns=
[
‘小白
兔’
,
‘
小白免
’
,
‘
小
熊猫’
,
‘小熊猫’]
df1
[
‘
小白兔‘][
‘GZ’]=44
/
/
使用column列名和index名称来访问。/
/
d
f1[‘
小熊猫
’]=44 //
使用column列名修改整列。
d
f1
out
[21]:
小白兔
小白兔
小熊猫
小熊猫
BJ 0 1 44 3
SH 4 5 44 7
GZ 44 9 44 11
SZ 12 13 44 15
有了 index 名称后就不建议用 index 编号了。