第二次打卡笔记
程序员文章站
2022-05-02 07:53:30
...
第二次打卡笔记:索引
导入数据
import numpy as np
import pandas as pd
df = pd.read_csv('data/table.csv',index_col='ID')
df.head()
一、单级索引
1、loc方法(位置索引)、iloc方法(标签索引)、[ ]操作符
(a)lcc方法
①单行索引
df.loc[1103]
②单列索引
df.loc[:,'Height'].head()
③联合索引
df.loc[1102:2401:3,'Height':'Math'].head()
④函数式索引:
df.loc[lambda x:x['Gender']=='M'].head()
(loc中使用的函数,传入参数就是前面的df)
⑤布尔索引
df.loc[df['Address'].isin(['street_7','street_4'])].head()
(loc中能传入的只有布尔列表和索引子集构成的列表)
(b)iloc方法(切片右端点不包含)
① 单行索引
df.iloc[3]
②单列索引
df.iloc[:,3].head()
③混合索引
df.iloc[3::4,7::-2].head()
④函数式索引
df.iloc[lambda x:[3]].head()
(iloc中接收的参数只能为整数或整数列表,不能使用布尔索引)
©[ ]操作符
(Series中的浮点[ ]进行值比较,而不是位置比较)
(1)Series的[ ]操作
①单元素索引:
s = pd.Series(df['Math'],index=df.index)
s[1101]
运行结果:34.0
② 多行索引:
s[0:4]
#使用的是绝对位置的整数切片,与元素无关,这里容易混淆
③ 函数式索引:
s[lambda x: x.index[16::-6]]
④ 布尔索引:
s[s>80]
(2)DataFrame的[ ]操作
① 单行索引:
df[1:2]
②单列索引:
df['School'].head()
③ 多列索引:
df[['School','Math']].head()
④函数式索引:
df[lambda x:['Math','Physics']].head()
⑤布尔索引:
df[df['Gender']=='F'].head()
([ ]操作常用于列选择或布尔选择,尽量避免行的选择)