目录
# 读取数据
# 读入数据
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