我们来详细讲解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[][ ]的详细攻略,希望可以帮助到大家。