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

您所在的位置:网站首页 excel筛选指定数据怎么筛选 Python:使用pandas对excel数据筛选选择

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

2024-07-09 00:59| 来源: 网络整理| 查看: 265

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["负债"]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切片数据结束-------------



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3