Python Series和DataFrame的索引和切片
整理得最全的提取Series或DataFrame数据的公式。
提取单个元素
基于位置提取数据
s[index]
s.iat[index]
df.iat[row_index, col_index]
基于 label 提取数据
s[label]
s.at[label]
df.at[row_label, col_label]
提取多个元素
对于 Series
基于位置提取
s[a:b]
s[[a,b,c]]
s.iloc[a:b]
s.iloc[[a,b,c]]
基于标签提取
s[label1:labeln]
s[[label1, label2, label3]]
s.loc[label1:labeln]
s.loc[[label1, label2, label3]]
对于 DataFrame
基于位置
| 行列 | 中括号 | iloc | 
|---|---|---|
| 单行 | df[a:a+1] | df.iloc[a]等价于df.iloc[a,:]、df.iloc[[a]]等价于df.iloc[[a],:] | 
| 多行 | df[a:b] | df.iloc[a:b]等价于df.iloc[a:b,:]、df.iloc[[a,b,c]]等价于df.iloc[[a,b,c],:] | 
| 单列 | - | df.iloc[:,a]、df.iloc[:,[a]] (:不能省略) | 
| 多列 | - | df.iloc[:,a:b]、df.iloc[:,[a,b,d]] | 
| 行列 | - | df.iloc[a:b,n:m]、df.iloc[[a,b,c],[n,m]] | 
基于标签
| 行列 | 中括号 | loc | 
|---|---|---|
| 单行 | - | df.loc[label]、df.loc[[label]] | 
| 多行 | - | df.loc[lable1:lable3]、df.loc[[lable1,lable2,…]] | 
| 单列 | df[clo1]、df[[col1]] | df.loc[:,col]、df.loc[:,[col]] (:不能省略) | 
| 多列 | df[[clo1,col2]] | df.loc[:,[col1,col2]] 、df.loc[:,col1:col4]] | 
| 行列 | - | df.loc[lable1:lable3,col1:col4]]、df.loc[[lable1,lable2,…],[clo1,col2] |