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

目录

读取数据

# 选择某一列

# 选择某几列

# 选择连续的几列

# 选择某一行

# 选择某几行

# 选择连续的几行

# 选择满足条件的行

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

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

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

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

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

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


# 读取数据

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

输出结果如下:

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

# 选择某一列

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

输出结果如下:

S1    张三
S2    王红
S3    李华
S4    郑晓
S5    黄思
S6    赵明
Name: 姓名, dtype: object
S1    张三
S2    王红
S3    李华
S4    郑晓
S5    黄思
S6    赵明
Name: 姓名, dtype: object

# 选择某几列

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

输出结果如下:

       学号  姓名  年级
S1  19101  张三  19
S2  19102  王红  19
S3  19205  李华  19
S4  20201  郑晓  20
S5  20202  黄思  20
S6  21101  赵明  21
       学号  姓名  年级
S1  19101  张三  19
S2  19102  王红  19
S3  19205  李华  19
S4  20201  郑晓  20
S5  20202  黄思  20
S6  21101  赵明  21

# 选择连续的几列

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

输出结果如下:

    姓名 性别  年级
S1  张三  男  19
S2  王红  女  19
S3  李华  男  19
S4  郑晓  女  20
S5  黄思  女  20
S6  赵明  男  21

# 选择某一行

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

输出结果如下:

学号                    19102
姓名                       王红
性别                        女
年级                       19
班级                        2
出生日期    2000-11-17 00:00:00
Name: S2, dtype: object
学号                    19102
姓名                       王红
性别                        女
年级                       19
班级                        2
出生日期    2000-11-17 00:00:00
Name: S2, dtype: object

# 选择某几行

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

输出结果如下:

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

# 选择连续的几行

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

输出结果如下:

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

# 选择满足条件的行

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

输出结果如下:

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

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

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

输出结果如下:

       学号  姓名
S2  19102  王红
S4  20201  郑晓

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

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

输出结果如下:

       学号  姓名
S2  19102  王红
S4  20201  郑晓

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

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

输出结果如下:

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

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

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

输出结果如下:

       学号  姓名
S4  20201  郑晓
S5  20202  黄思

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

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

输出结果如下:

   性别  年级
S1  男  19
S2  女  19
S3  男  19

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

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

输出结果如下:

性别     男
年级    19
班级     1
Name: S1, dtype: object

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值