导入模块
import pandas as pd
案例数据
my_dict = {
'姓名':
['张三','李四','王二','六月','北海'],
'年龄':
[23,27,26,22,18],
'性别':
['男','女','女','男','男'],
'工作':
['剪辑师','蛋糕师','消防员','程序员','辅导员'],
'工龄':
[2,3,3,2,0]}
df = pd.DataFrame(data=my_dict, columns=['姓名', '年龄', '性别', '工作', '工龄'])
df
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105230435324-550481244.png)
借助索引的筛选
行的筛选
df[1:4] # 筛选出第2行到第4行的数据,左闭右开。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105231443070-1422427505.png)
列的筛选
df[['姓名','工作']]
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105230934676-1736049368.png)
df[['姓名','工作']][1:4]
行与列的筛选
df[1:4][['姓名','工作']] # 等价于:df[['姓名','工作']][1:4]
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105232027620-1984898164.png)
借助.loc函数,标签的筛选
行的筛选
df.loc[2:4] # 筛选出:行标签从2到4所有行数据,左闭右闭。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105232654536-930418263.png)
列的筛选
df.loc[:,['姓名','年龄']] # 仅对列筛选
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105233239003-189395986.png)
行与列的筛选
df.loc[1:3,['姓名','年龄']] # 第一个参数中:{1:3指的是索引为1~3的行,左闭右闭}。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105233823145-1049184134.png)
df.loc[[1,2,4],['姓名','年龄']] # 第一个参数中:[1,2,4]代表了指定行的标签。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105234110576-813832262.png)
按照条件筛选行数据
df.loc[df['年龄']==27] # 单纯地按条件筛选。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105234706532-760269559.png)
df.loc[df['年龄']==27, ['工作', '工龄']] # 进一步限制显示的列。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105235007211-2034497201.png)
多条件筛选行数据
df.loc[(df['年龄']==27) | (df['性别']=='男'), ['工作', '工龄', '性别']]
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105235457855-1530823350.png)
借助.iloc函数,索引的筛选
行的筛选
df.iloc[1:3] # 左闭右开。行索引从0开始,所以会显示第2行到第3行的数据。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230105235838649-395473600.png)
列的筛选
df.iloc[:,1:4] # 列索引从0开始。索引会筛选第2列到第4列的数据。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230106000042727-866913230.png)
行与列的筛选
df.iloc[1:3,1:4] # 先选择第2行到第3行的数据,在此基础上再筛选第2列到第4列的数据。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230106000604752-1071370700.png)
df.iloc[[1,3,4],[2,3]] # 先筛选出索引为1,3,4的行数据,然后在此基础上再筛选出列索引为2和3的列。
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230106000934403-1573777603.png)
df.iloc[[1,3,4],1:4]
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230106001216176-893121755.png)
df.iloc[1:3,[2,3]]
![image](https://img2023.cnblogs.com/blog/2179834/202301/2179834-20230106001222327-815314316.png)