当前位置:   article > 正文

python|pandas库选择数据:loc方法、iloc方法,选择行数据、列数据、行列数据_python挑选多行数据

python挑选多行数据

目录

读取数据

# 选择某一列

# 选择某几列

# 选择连续的几列

# 选择某一行

# 选择某几行

# 选择连续的几行

# 选择满足条件的行

# 普通索引+普通索引选择行列

# 位置索引+位置索引选择行列

# 切片索引+切片索引选择行列

# 布尔索引+普通索引选择行列

# 布尔索引+切片索引选择行列

# 切片索引+普通索引选择行列


# 读取数据

  1. # 读入数据
  2. df = pd.read_excel('./student.xlsx', sheet_name='student1')
  3. # 设置行索引
  4. df.index = ['S1', 'S2', 'S3', 'S4', 'S5', 'S6']
  5. print(df)

输出结果如下:

  1. 学号 姓名 性别 年级 班级 出生日期
  2. S1 19101 张三 男 19 1 1999-12-13
  3. S2 19102 王红 女 19 2 2000-11-17
  4. S3 19205 李华 男 19 5 2001-01-25
  5. S4 20201 郑晓 女 20 1 2001-09-04
  6. S5 20202 黄思 女 20 2 2002-02-15
  7. S6 21101 赵明 男 21 1 2002-09-04

# 选择某一列

  1. df1 = df['姓名'] # 普通索引,选择列索引为'姓名'的列。
  2. print(df1)
  3. df1 = df.iloc[:, 1] # 位置索引,选择第1列,从0开始编号。
  4. print(df1)

输出结果如下:

  1. S1 张三
  2. S2 王红
  3. S3 李华
  4. S4 郑晓
  5. S5 黄思
  6. S6 赵明
  7. Name: 姓名, dtype: object
  8. S1 张三
  9. S2 王红
  10. S3 李华
  11. S4 郑晓
  12. S5 黄思
  13. S6 赵明
  14. Name: 姓名, dtype: object

# 选择某几列

  1. df2 = df[['学号', '姓名', '年级']] # 普通索引
  2. print(df2)
  3. df2 = df.iloc[:, [0, 1, 3]] # 位置索引
  4. print(df2)

输出结果如下:

  1. 学号 姓名 年级
  2. S1 19101 张三 19
  3. S2 19102 王红 19
  4. S3 19205 李华 19
  5. S4 20201 郑晓 20
  6. S5 20202 黄思 20
  7. S6 21101 赵明 21
  8. 学号 姓名 年级
  9. S1 19101 张三 19
  10. S2 19102 王红 19
  11. S3 19205 李华 19
  12. S4 20201 郑晓 20
  13. S5 20202 黄思 20
  14. S6 21101 赵明 21

# 选择连续的几列

  1. df3 = df.iloc[:, 1:4] # 位置索引
  2. print(df3)

输出结果如下:

  1. 姓名 性别 年级
  2. S1 张三 男 19
  3. S2 王红 女 19
  4. S3 李华 男 19
  5. S4 郑晓 女 20
  6. S5 黄思 女 20
  7. S6 赵明 男 21

# 选择某一行

  1. df4 = df.loc['S2'] # 普通索引,选择行名为S2的行。
  2. print(df4)
  3. df4 = df.iloc[1] # 位置索引,选择第1行,从0开始编号。
  4. print(df4)

输出结果如下:

  1. 学号 19102
  2. 姓名 王红
  3. 性别 女
  4. 年级 19
  5. 班级 2
  6. 出生日期 2000-11-17 00:00:00
  7. Name: S2, dtype: object
  8. 学号 19102
  9. 姓名 王红
  10. 性别 女
  11. 年级 19
  12. 班级 2
  13. 出生日期 2000-11-17 00:00:00
  14. Name: S2, dtype: object

# 选择某几行

  1. df5 = df.loc[['S1', 'S2', 'S4']] # 普通索引,选择行名为S1,S3,S4的行。
  2. print(df5)
  3. df5 = df.iloc[[0, 1, 3]] # 位置索引,选择第0,1,3行,从0开始编号。
  4. print(df5)

输出结果如下:

  1. 学号 姓名 性别 年级 班级 出生日期
  2. S1 19101 张三 男 19 1 1999-12-13
  3. S2 19102 王红 女 19 2 2000-11-17
  4. S4 20201 郑晓 女 20 1 2001-09-04
  5. 学号 姓名 性别 年级 班级 出生日期
  6. S1 19101 张三 男 19 1 1999-12-13
  7. S2 19102 王红 女 19 2 2000-11-17
  8. S4 20201 郑晓 女 20 1 2001-09-04

# 选择连续的几行

  1. df6 = df.iloc[1:4] # 位置索引
  2. print(df6)

输出结果如下:

  1. 学号 姓名 性别 年级 班级 出生日期
  2. S2 19102 王红 女 19 2 2000-11-17
  3. S3 19205 李华 男 19 5 2001-01-25
  4. S4 20201 郑晓 女 20 1 2001-09-04

# 选择满足条件的行

  1. df7 = df[df['年级']==19] # 一个条件,选择年级为19级的学生
  2. print(df7)
  3. df8 = df[(df['年级']==19) & (df['班级']<4)] # 多个条件,选择年级为19级且班级为1,2,3班的学生
  4. print(df8)

输出结果如下:

  1. 学号 姓名 性别 年级 班级 出生日期
  2. S1 19101 张三 男 19 1 1999-12-13
  3. S2 19102 王红 女 19 2 2000-11-17
  4. S3 19205 李华 男 19 5 2001-01-25
  5. 学号 姓名 性别 年级 班级 出生日期
  6. S1 19101 张三 男 19 1 1999-12-13
  7. S2 19102 王红 女 19 2 2000-11-17

# 普通索引+普通索引选择行列

  1. df9 = df.loc[['S2','S4'], ['学号','姓名']]
  2. print(df9)

输出结果如下:

  1. 学号 姓名
  2. S2 19102 王红
  3. S4 20201 郑晓

# 位置索引+位置索引选择行列

  1. df10 = df.iloc[[1,3],[0,1]]
  2. print(df10)

输出结果如下:

  1. 学号 姓名
  2. S2 19102 王红
  3. S4 20201 郑晓

# 切片索引+切片索引选择行列

  1. df11 = df.iloc[1:4, 0:4]
  2. print(df11)

输出结果如下:

  1. 学号 姓名 性别 年级
  2. S2 19102 王红 女 19
  3. S3 19205 李华 男 19
  4. S4 20201 郑晓 女 20

# 布尔索引+普通索引选择行列

  1. df12 = df[df['年级']==20][['学号','姓名']]
  2. print(df12)

输出结果如下:

  1. 学号 姓名
  2. S4 20201 郑晓
  3. S5 20202 黄思

# 布尔索引+切片索引选择行列

  1. df13 = df[df['年级']==19].iloc[:,2:4]
  2. print(df13)

输出结果如下:

  1. 性别 年级
  2. S1 男 19
  3. S2 女 19
  4. S3 男 19

# 切片索引+普通索引选择行列

  1. df14 = df.loc['S1'].iloc[2:5]
  2. print(df14)

输出结果如下:

  1. 性别 男
  2. 年级 19
  3. 班级 1
  4. Name: S1, dtype: object

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号