zoukankan      html  css  js  c++  java
  • 第十一节 pandas案列行的排序筛选

    import pandas as pd
    pd.options.display.max_rows = 10  # 设置显示行数
    
    df1 = pd.read_csv(r'E:anacondatestPythonData高校信息.csv', encoding='gbk', index_col=['学校名称', '名次', '类型'])
    
    # 使用索引排序,level存在多个索引时指明用哪个排序,ascending是升序还是降序,na_position缺失值排列顺序last最后/first最前
    df1.sort_index(level=['学校名称', '类型'], ascending=[True, False], inplace=False, na_position='last')
    
    # 使用变量排序
    df1.sort_values(['学校名称', '类型'], ascending=[True, False], inplace=False, na_position='last')
    
    # 案列筛选的实质是基于T/F值进行筛选
    sellist = [True, True, False]
    print(df1.iloc[sellist])
    
    # 按照绝对位置进行筛选
    print(df1.iloc[0:3])  # 不包括右侧界值,筛选第一和第二行
    print(df1.iloc[[0, 3]])
    print(df1.iloc[:,0:3])  # 指定列范围,不包括右侧边界
    print(df1.iloc[1:4, [0, 3]])  # 同时指定行列范围
    
    # 按照索引(这里的索引是学校名称,不能有多个索引列)值进行筛选
    print(df1.loc[2:4])  # 切片本身就是一个列表,所以不需要加[]
    print(df1.loc[['北京大学', '复旦大学']])  # 筛选出学校名称符合条件的行
    print(df1.loc[['北京大学', '复旦大学'],['所在省份', '总的']])  # 筛选出学校名称符合条件的行,并指定要显示哪几列
    
    # 使用多重索引进行筛选
    print(df1.loc[['财经', '师范']])  # 筛选出所有的财经类和师范类大学
    print(df1.loc[[('财经', '中央财经大学'), ('综合', '北京大学')]])  # 多重索引的完整检索,筛选出学校类型中财经下的中央财经大学和综合下的北京大学
    # print(df1.xs('中央财经大学', level=1, drop_level=False))
    
    # 直接进行条件筛选
    print(df1[df1.名次 > 10])
    print(df1.名次.isin([1, 3, 5]))
    print(df1.index.isin(['财经', '师范']))
    
    # 多重条件联合筛选
    print(df1[df1.名次>10][df1[df1.名次>10].名次 <90])  # 筛选名次大于10小于90的
    
    # 使用类sql语句进行筛选
    df1.query("名次>10 and 名次<90 and 类型 != '综合'")
    limit = 5
    df1.query("名次>@limit & 类型 != '综合'")
  • 相关阅读:
    DataGrid 样式
    MVC调用部分视图PartialView
    JavaScript/jQuery判断变量是否是undefined
    form表单只单个input框按回车键页面会自动刷新
    无法使用前导 .. 在顶级目录上退出
    Response.Redirect:正在中止线程
    图片压缩是出现白边如何去除
    C#.Net调试时调无法“编辑并继续”
    TimeSpan时间间隔
    拒绝了对对象 'sp_OACreate' (数据库 'mssqlsystemresource',架构 'sys')的 EXECUTE权限
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12562460.html
Copyright © 2011-2022 走看看