pandas模块------------------------筛选条件loc(多条件选择) iloc(固定选择哪行哪列)

loc

在选择时应用条件。

单条件:选择大于90成绩的学生信息:

import pandas as pd

source = pd.read_excel('C:/Users/Administrator/Desktop/source.xlsx')
print(source)
da = source.loc[(source['成绩'] > 90)]
print(da)

G:\Python3.8解释器\python.exe C:/Users/Administrator/PycharmProjects/pythonProject/first.py
学生姓名 成绩 班级 学校
0 a 80 1班 第5中学
1 b 56 1班 第4中学
2 c 91 3班 第3中学
3 d 100 4班 第2中学
4 e 76 2班 第1中学
5 f 73 2班 第1中学
6 g 66 3班 第1中学
学生姓名 成绩 班级 学校
2 c 91 3班 第3中学
3 d 100 4班 第2中学

Process finished with exit code 0

多条件选择:

import pandas as pd

source = pd.read_excel('C:/Users/Administrator/Desktop/source.xlsx')
da = source.loc[(source['成绩'] > 70)]
print(da)
daa = source.loc[(source['成绩'] > 70) & (source['成绩'] < 80)]
print('====================================')
print('成绩在70到80之间成绩的学生信息如下:')
print(daa)
dab = source.loc[(source['成绩'] > 90) & (source['学校'] == '第2中学')]
print('#####################################')
print('成绩在90分以上成绩的第二中学学生信息如下:')
print(dab)
实现效果如下:

G:\Python3.8解释器\python.exe C:/Users/Administrator/PycharmProjects/pythonProject/first.py
学生姓名 成绩 班级 学校
0 a 80 1班 第5中学
2 c 91 3班 第3中学
3 d 100 4班 第2中学
4 e 76 2班 第1中学
5 f 73 2班 第1中学
====================================
成绩在70到80之间成绩的学生信息如下:
学生姓名 成绩 班级 学校
4 e 76 2班 第1中学
5 f 73 2班 第1中学
#####################################
成绩在90分以上成绩的第二中学学生信息如下:
学生姓名 成绩 班级 学校
3 d 100 4班 第2中学

Process finished with exit code 0

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

准备数据

 上代码:

import pandas as pd

df = pd.read_excel('C:/Users/Administrator/Desktop/source.xlsx')
print(df.iloc[0:6]) # first 6 rows of dataframe
print('--------------------------------------')

 



print(df.iloc[:, 0:4]) # first 4 columns of data frame with all rows
print('--------------------------------------')

 


# 选择特定的行和列0,3,6行,2,1,3,0,6列
print(df.iloc[[0, 3, 6], [2,1, 3,0,6]])
print('--------------------------------------')

 



# first 5 rows and 5th, 6th, 7th columns of data frame
#前5行,第5,6,7列的数据:
print(df.iloc[:5, 5:8])
print('--------------------------------------')

 

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

练习:

import pandas as pd


Student_dict = {'姓名':['张三', '李四', '王五', '赵六'],
                '性别':['男', '女', '男', '女'],
                '年龄':[20, 21, 19, 18],
                'Python成绩':[70, 80, 90, 50],
                '评价':['良好', '良好', '良好', '良好'],
                '地址':['A小区10幢', 'A小区11幢','B小区10幢','C小区11幢']}


# 字典创建DataFrame,字典键变DataFrame的列名
df = pd.DataFrame(data=Student_dict, index=['a','b','c','d']) 
print(df)
df.to_excel('C:/Users/Administrator/Desktop/test.xlsx')

 

data = pd.read_excel('C:/Users/Administrator/Desktop/test.xlsx')
print(data)
data = data.loc[data['Python成绩'] > 75] # df.loc[]删选Python成绩>75的学生
print('=================================================================')
print(data)

 

data = data.loc[(data['Python成绩'] > 75) & (data['年龄'] > 20)] # df.loc[]删选Python成绩>75的学生,并且年龄>20的学生

 

#修改数据:
data = pd.read_excel('C:/Users/Administrator/Desktop/test.xlsx')
data.loc[data['Python成绩'] >= 90, '评价'] = '优秀'

print(data)

 

#判断某列数据中是否包含特定字符串列表
data = pd.read_excel('C:/Users/Administrator/Desktop/test.xlsx')
xiaoqu_list = ['A小区', 'B小区']
#data = data.loc[data['地址'].str.contains(xiaoqu_list)] ,报错TypeError: unhashable type: 'list'
xiaoqu_str = '|'.join(xiaoqu_list)
data = data[data['地址'].str.contains(xiaoqu_str)]
print(data)

 数据没有的情况如下:

 

posted @ 2023-08-02 15:30  往事已成昨天  阅读(349)  评论(0编辑  收藏  举报