Python:使用pandas对excel数据筛选选择

news/2024/11/23 3:32:23/

1.筛选方式1:直接筛选

#直接筛选
#DataFrame索引使用[],
#直接索引语法:df[]
1.1 直接筛选,选择单列数据:df["列"]

1.2直接筛选,选择多列数据:df[["列1","列2"]](注意:多嵌套列)

1.3直接筛选,选择多行数据:df[2:4]按照位置选取连续的行(切片),前闭后开

2.筛选方式2:条件筛选

#('----------筛选方式2:条件筛选-------------')
#条件筛选
#布尔索引(带条件判断的索引):根据布尔条件选择对应的行
#索引列表中可以使用&、|操作符,但是不能用and、or关键词
#布尔选择的结果还是DataFrame,所以对于结果可以进行切片、索引器等访问

2.1:单列布尔选择,df[(df["列"]==条件)]选取某列满足一定条件的行

2.2:多列布尔选择,df[(df["列1"]==条件&df["列1"]>条件)]选取多列满足一定条件的行

3.筛选方式3:筛选器筛选

#在Pandas两种数据结构中,原始索引(位置信息)和自定义索引(标签信息)并存
#原始索引(位置信息):小标,即行数组0,1,2,3标号;列数组0,1,2,3标号
#自定义索引(标签信息):小标,即行数组0,1,2,3标号,列名(代码,资产,负债,所有者权益)

#loc索引器:只能使用自定义索引,如果数据中没有自定义索引,则使用原始索引。
#根据行索引和列索引进行选取:先行后列,也可以只选取行索引,
#常见形式如下 1.选择单行/多行数据;
#                      2.选择多行多列数据,通过两个列表选取行列组合;
#                       3.loc布尔选择,按照条件选取单列(多列)满足一定条件的行;
#                      4.loc切片(选择连续的多行多列),通过切片选取连续的行列组合,冒号前后留空代表开口;

#iloc索引器:iloc索引器与loc索引器使用几乎相同。
#iloc索引器只能使用原始索引(位置信息),不能使用自定义索引


import pandas as pd#('----------筛选方式1:直接筛选-------------')
#直接筛选
#DataFrame索引使用[],
#直接索引语法:df[]df1=pd.read_excel(r'C:\Benjamin\Benjamin\Benjamin\Python\Study_example\Demo_panada\demo1.4\TEST1.4.xlsx')
print('----------读取表格行,列-------------')
print(df1.shape)
print('----------读取表格行,列结束-------------')print('----------读取表头(默认前5行)-------------')
print(df1.head())
print('----------读取表头结束-------------')print('----------读取表尾(默认后5行)-------------')
print(df1.tail())
print('----------读取表尾结束-------------')
#print(old[''])#1.4.1:直接筛选,选择单列数据:df["列"]
print('----------选择单列数据,比如:资产列-------------')
print(df1["资产"].head())
print('----------选择单列数据结束-------------')#1.4.2:直接筛选,选择多列数据:df[["列1","列2"]](注意:多嵌套列)
print('----------选择多列数据,比如:资产列,负债列-------------')
print(df1[["资产","负债"]].head())
print('----------选择多列数据结束-------------')#1.4.3:直接筛选,选择多行数据:df[2:4]按照位置选取连续的行(切片),前闭后开
print('----------选择多行数据,切片-------------')
print(df1[2:4])
print('----------选择多行数据结束-------------')#('----------筛选方式2:条件筛选-------------')
#条件筛选
#布尔索引(带条件判断的索引):根据布尔条件选择对应的行
#索引列表中可以使用&、|操作符,但是不能用and、or关键词
#布尔选择的结果还是DataFrame,所以对于结果可以进行切片、索引器等访问#1.5.1:单列布尔选择,df[(df["列"]==条件)]选取某列满足一定条件的行
print('----------选择满足条件的列,比如资产>130的行-------------')
print(df1[(df1["资产"]>130)])
print('----------选择多行数据结束-------------')#1.5.2:多列布尔选择,df[(df["列1"]==条件&df["列1"]>条件)]选取多列满足一定条件的行
print('----------选择满足条件的列,比如资产>130的行-------------')
print(df1[(df1["资产"]>130)&(df1["负债"]<48)])
print('----------选择满足条件的行数据结束-------------')#('----------筛选方式3:索引器筛选-------------')
#在Pandas两种数据结构中,原始索引(位置信息)和自定义索引(标签信息)并存
#原始索引(位置信息):小标,即行数组0,1,2,3标号;列数组0,1,2,3标号
#自定义索引(标签信息):小标,即行数组0,1,2,3标号,列名(代码,资产,负债,所有者权益)#loc索引器:只能使用自定义索引,如果数据中没有自定义索引,则使用原始索引。
#根据行索引和列索引进行选取:先行后列,也可以只选取行索引,
#常见形式如下 1.选择单行/多行数据;
#             2.选择多行多列数据,通过两个列表选取行列组合;
#             3.loc布尔选择,按照条件选取单列(多列)满足一定条件的行;
#             4.loc切片(选择连续的多行多列),通过切片选取连续的行列组合,冒号前后留空代表开口;#1.6.1:选择单行/多行数据:df.loc['行']、df.loc[['行1','行2']](注意:多嵌套列)
print('----------loc行名选择-------------')
print(df1.loc[1])
print(df1.loc[[1,3]])
print('----------选择多行数据结束-------------')#1.6.2:选择多行/多列数据:df.loc[['行1','行2'],['列1','列2']](注意:多嵌套列)
print('----------loc行列选择-------------')
print(df1.loc[[1,2],["资产","负债"]])
print(df1.loc[[6,7],["资产","负债"]])
print('----------选择多行数据结束-------------')#1.6.3:loc切片,(选择多行/多列数据):df.loc['行1':'行2','列1':'列2']
print('----------loc切片行列选择-------------')
print(df1.loc[1:4,:"负债"])
print(df1.loc[6:8,"资产":"负债"])
print('----------loc切片数据结束-------------')#iloc索引器:iloc索引器与loc索引器使用几乎相同。
#iloc索引器只能使用原始索引(位置信息),不能使用自定义索引
print('----------iloc切片行列选择-------------')
print(df1.loc[1:4,:"负债"])
print(df1.iloc[1:4,:3])
print('----------iloc切片数据结束-------------')

输出结果:

----------读取表格行,列-------------
(40, 4)
----------读取表格行,列结束-------------
----------读取表头(默认前5行)-------------
   代码   资产  负债    所有者权益
0   1  100  11  1111234
1   2  101  12  1111235
2   3  102  13  1111236
3   4  103  14  1111237
4   5  104  15  1111238
----------读取表头结束-------------
----------读取表尾(默认后5行)-------------
    代码   资产  负债    所有者权益
35  36  135  46  1111269
36  37  136  47  1111270
37  38  137  48  1111271
38  39  138  49  1111272
39  40  139  50  1111273
----------读取表尾结束-------------
----------选择单列数据,比如:资产列-------------
0    100
1    101
2    102
3    103
4    104
Name: 资产, dtype: int64
----------选择单列数据结束-------------
----------选择多列数据,比如:资产列,负债列-------------
    资产  负债
0  100  11
1  101  12
2  102  13
3  103  14
4  104  15
----------选择多列数据结束-------------
----------选择多行数据,切片-------------
   代码   资产  负债    所有者权益
2   3  102  13  1111236
3   4  103  14  1111237
----------选择多行数据结束-------------
----------选择满足条件的列,比如资产>130的行-------------
    代码   资产  负债    所有者权益
31  32  131  42  1111265
32  33  132  43  1111266
33  34  133  44  1111267
34  35  134  45  1111268
35  36  135  46  1111269
36  37  136  47  1111270
37  38  137  48  1111271
38  39  138  49  1111272
39  40  139  50  1111273
----------选择多行数据结束-------------
----------选择满足条件的列,比如资产>130的行-------------
    代码   资产  负债    所有者权益
31  32  131  42  1111265
32  33  132  43  1111266
33  34  133  44  1111267
34  35  134  45  1111268
35  36  135  46  1111269
36  37  136  47  1111270
----------选择满足条件的行数据结束-------------
----------loc行名选择-------------
代码             2
资产           101
负债            12
所有者权益    1111235
Name: 1, dtype: int64
   代码   资产  负债    所有者权益
1   2  101  12  1111235
3   4  103  14  1111237
----------选择多行数据结束-------------
----------loc行列选择-------------
    资产  负债
1  101  12
2  102  13
    资产  负债
6  106  17
7  107  18
----------选择多行数据结束-------------
----------loc切片行列选择-------------
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
4   5  104  15
    资产  负债
6  106  17
7  107  18
8  108  19
----------loc切片数据结束-------------
----------iloc切片行列选择-------------
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
4   5  104  15
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
----------iloc切片数据结束-------------


http://www.ppmy.cn/news/903561.html

相关文章

2023.7.14 智慧芽前端面试总结

整体面试体验感蛮不错的&#xff0c;面试官很愿意与我交流&#xff0c;面试的结尾也给出了一定的学习建议。 由于这家公司主要的业务是做搜索引擎方面&#xff0c;估摸着是个自研。面试注重点主要是偏业务处理和针对工具的使用&#xff0c;还有无障碍阅读英文文章&#xff0c;…

实测:360极速浏览器在内存控制上完胜Edge

同样是开启7个同样的网页标签页&#xff1a;内存占用如下&#xff1a;

Edge 浏览器新版来袭,Office 功能首次出现!

‍ ‍微信搜索公众号“逆锋起笔”&#xff0c;选择“星标” 第一时间关注 程序员干货分享&#xff01; 为了让用户快速访问Office文件&#xff0c;微软已经为Edge和Chrome浏览器提供了一个浏览器扩展。除此之外&#xff0c;近日微软Edge 92版开始向开发频道的测试人员推出&…

微软 Edge 浏览器将迎来新的迷你右键菜单

当用户想在 Microsoft Edge 中执行一个特定的操作时&#xff0c;在上下文&#xff08;右键&#xff09;菜单上有太多的项目会很烦人。而且在用户的上下文菜单上至少有一两个选项是用户从来没有使用过的&#xff0c;特别是当用户在浏览器中阅读 PDF 文档时。 在 Canary 版本中&…

y0usef靶场详解

y0usef靶场详解 靶机感悟&#xff1a;对于这个靶机并没有太多的难点&#xff0c;也没有的别多的绊子&#xff0c;就是猜测下一步是什么&#xff0c;耐心的去思考怎么才能进行到下一步。 靶机下载地址&#xff1a;https://download.vulnhub.com/y0usef/y0usef.ova 这个靶机是…

Microsoft Edge很好用的浏览器

Microsoft Edge是一款现代化的浏览器&#xff0c;它拥有众多功能和强大的性能&#xff0c;为用户带来更加流畅的浏览体验。 Edge最近推出了分屏功能&#xff0c;支持一个窗口同时显示两个选项卡&#xff0c;这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能…

基于JSP的笔记本电脑销售系统

1&#xff0e;前台系统功能模块分为&#xff1a; 用户注册模块&#xff1a;要求新用户可以在系统前台注册&#xff0c;注册信息可以保存在数据库中&#xff0c;后台管理员审核注册的用户&#xff0c;防止一些违规注册&#xff0c;注册后即可登录系统前台。 商品展示模块&…

电脑技巧:Microsoft Edge浏览器技巧介绍

目录 1、导入浏览器数据 2、Edge边栏 3、实用的扩展功能 4、创建集锦列表 4.1 集锦的作用 4.2 使用方法 5、查找优惠券 6、Edge效率省电模式 Microsoft Edge是Windows10操作系统预装的一款非常棒的浏览器和之前的IE不同&#xff0c;采用了谷歌浏览器内核&#xff0c;相…