Python数据分析

Python数据分析 知识量:13 - 56 - 232

6.3 选择行列><

使用普通+普通索引- 6.3.1 -

同时选择某些行列就是选择数据表的子表。使用普通索引选择行列时需要使用loc方法。loc方法的参数中第1对方括号表示行索引名称;第2对方括号表示列索引名称。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
print(df.loc[[0,2,4],['Chinese','Math']])

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

   Chinese  Math
0       90    66
2       90    66
4       55    69

使用位置+位置索引- 6.3.2 -

使用位置索引选择行列时需要使用iloc方法。iloc方法的参数中第1对方括号表示行索引位置;第2对方括号表示列索引位置。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
print(df.iloc[[1,2,3],[0,2]])

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

     Name  Chinese
1    Emma       56
2    Noah       90
3  Olivia       86

使用布尔+普通索引- 6.3.3 -

布尔索引+普通索引的方式用于选择满足特定条件的数据子表。例如:选择Chinese成绩合格(>60)的Name和Chinese列的数据:

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
print(df[df['Chinese']>60][['Name','Chinese']])

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name  Chinese
0      Noah       90
2      Noah       90
3    Olivia       86
5    Sophia       90
7  Isabella       66

以上代码中,先通过布尔索引选择满足条件的行,再通过普通索引指明要选择的列。

使用切片+切片索引- 6.3.4 -

使用切片索引选择行列时需要使用iloc方法。iloc方法的第1个参数表示行区间;第2个参数表示列区间。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
print(df.iloc[1:5,2:])

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

   Chinese  English  Math
1       56       56    55
2       90       50    66
3       86       87    44
4       55       88    69