Python pandas 的索引方式 data.loc[],data[][]示例详解

  • Post category:Python

我们来详细讲解Python pandas 的索引方式 data.loc[],data[][ ]的使用方法和示例。

1. loc[] 索引方式

1.1 简介

loc[] 是 pandas 中用来按标签值查询某一行或某一列的函数。loc[] 可以使用标签来切片,切片方法为前闭后闭。其用法如下:

df.loc[row_indexer,column_indexer]

其中,row_indexer 可以为标签或标签数组,column_indexer 同理。如果要查询行或列的所有标签,可以使用冒号 ‘:’ 代替。

1.2 示例

import pandas as pd

# 创建 DataFrame
data = {'name':['Tom','Jerry','Smith','Alex','Lily'],'age':[20,18,22,24,19],'gender':['M','M','M','M','F']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'], index=['A','B','C','D','E'])
print(df)

输出结果:

    name  age gender
A    Tom   20      M
B  Jerry   18      M
C  Smith   22      M
D   Alex   24      M
E   Lily   19      F

接下来,我们进行一些 loc[] 的使用示例。

1.2.1 查询某一行

# 查询索引为 B 的行
print(df.loc['B',:])

输出结果:

name      Jerry
age          18
gender        M
Name: B, dtype: object

1.2.2 查询某一列

# 查询 age 这一列
print(df.loc[:,'age'])

输出结果:

A    20
B    18
C    22
D    24
E    19
Name: age, dtype: int64

1.2.3 查询行和列的交叉区域

# 查询索引为C的行,且查询name和gender这两列
print(df.loc[['C'], ['name','gender']])

输出结果:

    name gender
C  Smith      M

2. [ ] 索引方式

2.1 简介

[ ] 索引方式是 pandas 中常用的索引方式之一,可以用来按列名和行号查询数据。其用法如下:

df[column_name][row_indexer]

其中,column_name 为列名,row_indexer 可以是整数,切片或布尔数组。如果要查询整列数据,可以省略 row_indexer。如果要查询多列数据,则可以使用以下方式:

df[[column_name1,column_name2,...]][row_indexer]

2.2 示例

接下来我们通过示例来了解一下 [ ] 索引方式的使用。

import pandas as pd

# 创建 DataFrame
data = {'name':['Tom','Jerry','Smith','Alex','Lily'],'age':[20,18,22,24,19],'gender':['M','M','M','M','F']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'], index=['A','B','C','D','E'])
print(df)

输出结果:

    name  age gender
A    Tom   20      M
B  Jerry   18      M
C  Smith   22      M
D   Alex   24      M
E   Lily   19      F

2.2.1 查询单列

# 查询 age 这一列
print(df['age'])

输出结果:

A    20
B    18
C    22
D    24
E    19
Name: age, dtype: int64

2.2.2 查询多列

# 查询 age 和 gender 两列
print(df[['age','gender']])

输出结果:

   age gender
A   20      M
B   18      M
C   22      M
D   24      M
E   19      F

2.2.3 查询单元格

# 查询索引为 D 的行,age 列的值
print(df['age']['D'])

输出结果:

24

2.2.4 切片查询

# 查询从第二行到第四行(不包含第四行)age 列的值
print(df['age'][1:3])

输出结果:

B    18
C    22
Name: age, dtype: int64

以上就是关于 Python pandas 的索引方式 data.loc[],data[][ ]的详细攻略,希望可以帮助到大家。