0%

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]