pandas之查找数据 |
您所在的位置:网站首页 › vba字段查找并返回列值 › pandas之查找数据 |
文章目录
一、简介二、按列查找数据2.1 查找一整列的数据2.1.1 df['列名']2.1.2 df.loc[:, '列名']2.1.3 df.iloc[:, 列的位置]
2.2 查找一列的部分数据2.2.1 df.loc['起始索引名':'终点索引名', '列名']2.2.2 df.iloc['起始索引位置':'终点索引位置', '列的位置']
三、按行查找数据3.1 查找整行数据3.1.1 df['索引名']3.1.2 df['索引名']
3.2 查找行的部分数据3.2.1 df.loc['索引名', '起始列名':'终点列名']3.2.2 df.iloc[索引位置, 起始列位置:终点列位置]
一、简介
我们在这里简单介绍了创建Series、DataFrame的几种方式,本文主要介绍如何查找数据。 由于Series数据结构较为简单,因此先主要介绍DataFrame数据结构的查找数据。 二、按列查找数据先介绍按列查找数据的方法。 2.1 查找一整列的数据 2.1.1 df[‘列名’]先创建一个DataFrame data = {'name': ['apolo', 'adm', 'bolon', 'cathy'], 'age': [18, 29, 32, 28], 'sex': ['male', 'female', 'male', 'male']} df = pd.DataFrame(data) df输出: name age sex 0 apolo 18 male 1 adm 29 female 2 bolon 32 male 3 cathy 28 male知道要查找的列的列名的话,可以直接按照df[‘列名’]的方式直接查找: df['age']输出:返回的是一个Series对象,可以利用Series的属性或方法进行后续的操作 0 18 1 29 2 32 3 28 Name: age, dtype: int64查找多列的话,也可以用类似的方法——df[[‘列名1’, ‘列名2’, ……]],但要注意不能用df[‘列名1’, ‘列名2’, ……],否则会报错。 df[['age', 'sex']]输出:此时输出的是一个DataFrame对象 age sex 0 18 male 1 29 female 2 32 male 3 28 male 2.1.2 df.loc[:, ‘列名’]其实这种方法更适合查找一列中的部分数据,即对行切片。 df.loc[:, 'age']输出:是一个Series对象 0 18 1 29 2 32 3 28 Name: age, dtype: int64同样,这种方法也可以同时查找多列——df.loc[:, [‘列名1’, ‘列名2’, ……]] df.loc[:, ['age', 'sex']]输出: age sex 0 18 male 1 29 female 2 32 male 3 28 male 2.1.3 df.iloc[:, 列的位置]这种方法和df.loc[:, ‘列名’]类似,区别在于这种方法需要传入要查找的列的位置,而不是列名。 df.iloc[:, 2]输出: 0 male 1 female 2 male 3 male Name: sex, dtype: object同样,这种方法也可以同时查找多列——df.loc[:, [‘列的位置1’, ‘列的位置2’, ……]] df.iloc[:, [0, 2]]输出: name sex 0 apolo male 1 adm female 2 bolon male 3 cathy male 2.2 查找一列的部分数据 2.2.1 df.loc[‘起始索引名’:‘终点索引名’, ‘列名’]先创建一个DataFrame data = {'name': ['apolo', 'adm', 'bolon', 'cathy', 'devn', 'elov'], 'age': [18, 29, 32, 28, 34, 19], 'sex': ['male', 'female', 'male', 'male', 'male', 'female']} df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e','f']) df输出: name age sex a apolo 18 male b adm 29 female c bolon 32 male d cathy 28 male e devn 34 male f elov 19 female和查询整列的语法类似。 df.loc['a':'c', 'sex']输出:需要注意的是,'a':'c'不能换为'c:'a',否则结果是空的,同样,也可以同时查询多列的部分,只需将'sex'换为['sex', 'age']即可。 a male b female c male Name: sex, dtype: object 2.2.2 df.iloc[‘起始索引位置’:‘终点索引位置’, ‘列的位置’]和查询整列的方法类似。 df.iloc[2:5, 1]输出:同样,也不能调换起始索引和终点索引的位置,否则结果是空的。而要查询多列,也只需将1换为[0, 1]即可。 c 32 d 28 e 34 Name: age, dtype: int64 三、按行查找数据和查询列的方法类似,主要就是用df.loc[]和df.iloc[] 3.1 查找整行数据 3.1.1 df[‘索引名’]和查询整列的方法类似,但只传入待查找的行的索引名即可。 df.loc['c']输出:此时输出的对象是一个Series对象,其索引为原df的列名。 name bolon age 32 sex male Name: c, dtype: object查找多行的语法类似,只需传入索引名组成的列表即可。 df.loc[['c', 'a']]输出:最后输出的行的顺序和传入的列表中索引名的顺序一致。 name age sex c bolon 32 male a apolo 18 male 3.1.2 df[‘索引名’]和查询整列的方法类似,但只传入待查找的行的索引的位置即可。 df.iloc[3]输出:此时输出的对象是一个Series对象,其索引为原df的列名。 name cathy age 28 sex male Name: d, dtype: object查找多行的语法类似,只需传入索引的位置组成的列表即可。 df.iloc[[5, 2]]输出:最后输出的行的顺序和传入的列表中索引的位置的顺序一致。 name age sex f elov 19 female c bolon 32 male 3.2 查找行的部分数据和查找整行的数据类似。 3.2.1 df.loc[‘索引名’, ‘起始列名’:‘终点列名’] df.loc['c', 'name':'age']输出:同样要注意,列名的顺序不能写反,否则会得到空结果。要想查找多个行的部分数据,也只需传入索引名组成的列表即可。 name bolon age 32 Name: c, dtype: object 3.2.2 df.iloc[索引位置, 起始列位置:终点列位置] df.iloc[4, 1:3]输出:同样要注意,列的位置的顺序不能写反,否则会得到空结果。要想查找多个行的部分数据,也只需传入索引的位置组成的列表即可。 age 34 sex male Name: e, dtype: object |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |