pandas 选择数据
索引pandas DataFrame的方法总结
1. 直接用中括号索引 行或者列 :
1) 用 df['A'] 索引列 或者 df.A
2) 用切片索引行 df[1:3] 或者 df['20130101':'20130103']
2. 用 df.loc[] 索引 ,如果用 切片 或 list 只能用 index 或者 columns的名字
1) 可以用切片或者list 来选择行列 ,参数1为行,参数2为列,例如
df.loc[:,['A','B']]
df.loc['20130101',['A','B']]
3. 用 df.iloc[] 索引,如果用切片或者list表示,只能用index
4. 用条件选择rows ,之后可以再用loc iloc选择行列
https://www.bilibili.com/video/BV1Ex411L7oT?p=12
import pandas as pd import numpy as np dates = pd.date_range('20130101',periods=6) # index 有6 columns 有4 所以要reshape(6,4) df = pd.DataFrame(np.arange(24).reshape((6,4)) , index = dates,columns= ['A','B','C','D']) print(df) # 1.索引方法 索引列 print(df['A'],df.A) # 2.切片索引rows 根据 index 或者根据 index name print(df[1:3] , df['20130101':'20130103']) # 3. select by label loc print(df.loc['20130101']) # 4. 打印 全部行的 A B 两列 , 注意列的list 与切片一样, 是整体作为 df.loc[]的一个参数 print(df.loc[:,['A','B']]) # 5. 只打印 某行的 A B 两列 print(df.loc['20130101',['A','B']]) #6. select by position iloc print(df.iloc[3]) # 打印第三行 print(df.iloc[3:5,1:3]) # 切片 打印第三行到第五行,第一列到第三列 print(df.iloc[[1,3,5],1:3]) # 7. Boolean indexing 选择满足条件的rows print(df) print(df[df.A>8]) print(df[df.A > 8].loc[:,['A','B']])