Pandas 数据结构之 DataFrame使用教程

一. DataFrame 简介

DataFrame是Pandas中的一个表格型数据结构,包括一组有序的列,每列的值的类型都可不同(整型、浮点型、布尔型、字符串等),DataFrame既有行索引也有列索引,能够被看作是由Series组成的字典

DataFrame也能够了解为带了python能够做什么工作行和列标签的二维数组

Name Age Sex
0 李华 20 female
1 韩梅梅数组公式 19 female
2 李磊 21 male

其中行标签为序号 0,1,2,python为什么叫爬虫列标签为 Name, Age, Sex. DataFrame 是最常用的Pandas政策, 与Series相同,DataFrame支撑多种类型的输入数据:

  • 列表、一维ndarray、字典、Series字典
  • 二维ndarray
  • Series
  • DataFrame

除了数据实例化目标,还能够有挑选地传递 index(行标签)和 columns(列标签)参数组去重数。传递了index或clolumns,就能够确保生成的 DataFrame 里包有索引或列。Series 字典加上指定索引时,会丢掉与传递的索实例化是什么意思引不匹配的悉数数据。

没有传递轴标签时,按常规数据结构知识点总结根据输入数据进行构建。

二.DataFrame 实例化

DataFr数据结构在计算机内存中的表示是指ame 能够运用字典、列表等实例化。

假定传入的数据悉数是标量值(比如字python是什么意思典:{‘a’:1, ‘b’:2}),那么有必要传入index参数

df = pd.Da数组去重taFrame({
'name': ['lihua', 'lilei', 'hanmeimei', 'xiaoming', 'xiaohong'],
'math': [99, 100, 80, 50, 118],
'english': [94, 83, 99, 79, 108],
'chin数据结构c言语版ese': [107, 82,实例化目标是什么意思 76, 100, 113]
})
Output:
name  math  english  chinese
0      lipython是什么意思hua    99       94      107
1      lilei   100       83       82
2  hanmeimei    80       99       76
3   xiaoming    50       79      100
4   xiaohong   118      108      113

三.行数据数组去重的5种办法的挑选

1.按方位挑选行数据(单行挑选)

当咱们想挑选第N数据结构严蔚敏行数据时(N理论上应小于等于能取到的最大行),我数组初始化们能够用以下办法进行挑选:

df.iloc[1]
Output:
name  math  english  chinese
1  lilei   100       83       82

在这个示例中咱们运用了iloc办法进行了根据方位的行数据挑选,不只如此iloc还支撑行切片,多行挑选等功数组能,具体的运用办法见下一末节。

2.按方位选数组公式择行数据(多行挑选:相似于切片)

办法一:当咱们想挑选前N(N理论上应小于等于能取到的最大行)行或许后N行数据时,咱们能够用以下办法挑选:数组的界说

df.headPython(2) # 取前两行数据
Output:
name  math  english  chinese
0  lihua    99       94      107
1  lilei   100       83       82
df.tail(2) # 取最终两行数据
Output:
name  math  english  chinese
3  xiaoming    50       79      100
4  xiaohong   118      108      113

办法二:或许咱们也能够用行数组的界说切片的办法获取前(后)N行的数据:

df[0:2] # 从榜首行开始取,一共取两行(不包括方位为2的实例化一个类那行数据,只取方位下标为0,1的两行数据)
Output:
name  math  english  chinese
0  lihua    99       94      107
1  lilei   100       83       82
df[-2:] # 从第倒查第二行开始取,一向取到完毕。
Output:
na数据结构难学吗me  math  english  chinese
3  x数组c言语iaoming    50       79      100
4  xiaohong   118      108      113

行切片的办法相似于python基本数据结构中列表的切片办法,所以行切片也支撑中心部分切片、完毕切片等等数组公式。更多的数组指针运用办法可参阅列实例化目标的关键字表的切片

办法三:相同的咱们也能够数组排序运用DataFrame类的iloc办法对DataFrame进行行切片

df.iloc[0:2] # 从榜首行开始取,一共取两行(不python是什么意思包括方位为2的那行数据,只取方位下标为0,1的两行数据)
Output:
name  math数据结构教程第5版李春葆答案  engl实例化目标的关键字ish  chinese
0  lihua    99       94      107
1  lilei   100       83       82
df.iloc[-2:] # 从第倒查第数组二行开始取,一向取到完毕。
Output:
name  math  english  chinese
3  xiaomingpython123渠道登录    50       79      100
4  xiaohon数据结构严蔚敏g   118      108      113
df.il实例化目标oc[[0, 1, 3]] # 取榜首行,第二行、以及第四行数据
Output:
name  math  englis数组初始化h  chinese
0     lihua    99       94      107
1     lilei   100       83       82
3  xiaoming    50       79      100

运用iloc办法切片时,用df.iloc[[0,1]]能到达df.i数组词loc[0:2]相同的效果。小伙伴们能够亲身测验下看看效果。

行切片与iloc切片的运用办法大致相似,需求留意的python培训班膏火一般多少是iloc切片更为活络。运用iloc数组排序不只能够切片,也支撑不接连切片,见上述比如(只需传入待获取的行的方位数组即可。),一起iloc也能够获取指定的某一单独行(见下末节比如)

3.按索引值挑选单(多)行数据

差异于按方位获取指定的行数据,咱们也能够根据索引值来获取相应的行数据结构难学吗数据:

df.l实例化目标oc[0] #获取索引值为0的那一行的数据
Output:
name  math  english  chi实例化数组nese
0     lihua    99       94      107
dPythonf.loc[[1,3]] #获取索引值为1和3的行数据
Output:实例化servlet类反常
name  matpython下载安装教程h  english  chinese
1     lilei   100       83       82
3  xiaoming    50       7数据结构期末考试题及答案9      100

在上述loc比如中所传入的参数值为实例化DataFrame时的索引值,不是方位的值,也不能数组了解成方位。由于在本例中实例化DataFrame时咱们并未传入index参数,所以会生成一个默许的索引序列(从0开始的递加序列数据结构c言语版),所以本例的索引序列刚好和方位序列相同了,所以才会形成lociloc并无差异的假象。在实践运用中,假定index(索引)序列为[‘a’, ‘b’, ‘c’, ‘d’, ‘e’]时,数据结构期末考试题及答案那么咱们假定运用loc获取行数据时,应该传入的参数便是index序列中的值。

lociloc的差异不只仅体现在前者是根据索引,后者是根据方位的挑选行数据,一起loc还支撑挑选指定的列数据

df.loc[[0, 1], ['name', 'math']] #获取前两实例化一个类行数据,一起指定列数据为n数据结构c言语版ame和math
Outpu实例化类t:
name  math
0  lihua    99
1  lilei   100

4.按条件(bool)挑选实例化英文指定的行数据

DataFrame是支撑咱们依实例化是什么意思照自界说的查找条件去获取指定的行数据的,比如name=’xxx’或许15<math<20等这样的条件:

df[df['name'] == 'lihua'] #选取dpython下载安装教程ataFrame中,name特色等于lihua的悉数行数据
Output:
name  math  english  chinese
0  lihua    99       94      107
df[df['math'].between(90, 100)] #选取dataFrame中,math值在90到1数据结构知识点总结00之间的行数据
Output:
name  math  english  chinese
0  lihu实例化servlet类反常a    9数组去重9       94      107
1  lilei   100       83       8实例化一个类2
df[df['english'] > 100] #选取dataFrame中,english值在大于100的行数据
Output:
name  math  english  chinese
4  xiaohong   118      108      113
df[df['name'].isin(['hanmeimei', 'xiaoming'])] #选取dataFrame中,name特色符合['hanmeimei', 'xiaoming']的悉数行数据
Output:
name  math  english  chinese
2  hanmeimei    80       99       76
3python123   xiaominpython下载安装教程g    50       79      100

在运用python下载安装教程between提取区间数据时,假定不想让两头的值包括其中(满足两头的值不被提取出来),只需求把 inclusive F数据结构难学吗alse即可

四.列数据的挑选

列数据的挑选比较行数据的挑选简略许多。数据结构知识点总结对列数据的挑选,咱们只能运用column的值去获取相应数据结构教程第5版李春葆答案的列数据:

df['n数组c言语ame'] #获python下载安装教程取DataFrame中column为name的列数据
Output:
0        lihua
1        lilei
2    hanmeimei
3     xia数据结构严蔚敏oming
4     xiaohong
Name: name, dt数据结构c言语版严蔚敏ype: object
df.name # 等价于df['name']
Output:
0        lihua
1        lilei
2    hanmeimei
3     xiaoming
4     xiaohong
Name: name, dtype: object
df[['name', 'm数组公式ath']] #数组去重获取DataFrame中column为name和math的列数据
Output:数据结构题库及答案
name  mpython下载安装教程ath
0      lihua    99
1      lilei   100
2  hanmpython123eimei    80
3   xiaoming    50
4   xiaohong   118
df.loc[:, ['name', 'math数组去重的5种办法']] #等价于df[['name', 'mpython培训班膏火一般多少ath']],获取悉数的行,一起捆绑co数据结构教程第5版李春葆答案lumn为 name和math
Output:数据结构c言语版严蔚敏
name  math
0      lihua    99
1python基础教程      lilei   100
2  hanmeimei    80
3   xiao数组词ming    50
4   xia实例化类ohong   118

从上述比如能够看出,不管获取单列或多列的值咱们也是能够运用loc办法的,只不过先把loc中获取行数据的条件给放宽了(获取悉数行,等实例化英文于没捆绑)

评论

发表回复