zoukankan      html  css  js  c++  java
  • Pandas 中根据列值,选取DataFrame数据,并获取行索引号列表

    一 . 根据列条件,获取行索引号并转成列表

    import pandas as pd
    df = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],'attr': [22, 33, 22, 44, 66]},  
           index=[10,20,30,40,50])  
    print(df)  
    a = df[(df.BoolCol==3)&(df.attr==22)].index.tolist()  
    print(a)  

    查找 BoolCol = 3 和 attr = 22 的数据

    # 结果 
      BoolCol  attr  
    10        1    22  
    20        2    33  
    30        3    22  
    40        3    44  
    50        4    66  
    [30]  

    注意:

      df[(df.BoolCol==3)&(df.attr==22)].index返回的是index对象列表,需转换为普通列表格式时用tolist()方法

    二 . 根据列条件,选取dataframe数据框中的数据

    # 选取等于某些值的行记录 用 == 
    
    df.loc[df['column_name'] == some_value]
    
    # 选取某列是否是某一类型的数值 用 isin
    
    df.loc[df['column_name'].isin(some_values)]
    
    # 多种条件的选取 用 &
    
    df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)]
    
    # 选取不等于某些值的行记录 用 !=
    
    df.loc[df['column_name'] != some_value]
    
    # isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
    
    df.loc[~df['column_name'].isin(some_values)]
  • 相关阅读:
    nessus 安装
    firefox SSL_ERROR_RX_RECORD_TOO_LONG burpsuit 报错 解决方案
    Vmware 15 新建虚拟机黑屏
    esp8266 IOT Demo 固件刷写记录
    elk + suricata 实验环境详细安装教程
    停更申明
    求二叉树的深度
    方差
    链表的基本排序
    正态分布及3Sigma原理
  • 原文地址:https://www.cnblogs.com/zmc940317/p/13615168.html
Copyright © 2011-2022 走看看