zoukankan      html  css  js  c++  java
  • python – 基于pandas中的列中的值从DataFrame中选择行

    如何从基于pandas中某些列的值的DataFrame中选择行?
    在SQL中我将使用:
    select * from table where colume_name = some_value.

    我试图看看熊猫文档,但没有立即找到答案。

     
    要选择列值等于标量some​​_value的行,请使用==:
    df.loc[df['column_name'] == some_value]

    要选择其列值在可迭代值some_values中的行,请使用isin:

    df.loc[df['column_name'].isin(some_values)]

    要选择列值不等于some_value的行,请使用!=:

    df.loc[df['column_name'] != some_value]

    isin返回一个布尔系列,所以要选择值不在some_values的行,使用〜来否定布尔系列:

    df.loc[~df['column_name'].isin(some_values)]

    例如,

    import pandas as pd
    import numpy as np
    df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                       'B': 'one one two three two two one three'.split(),
                       'C': np.arange(8), 'D': np.arange(8) * 2})
    print(df)
    #      A      B  C   D
    # 0  foo    one  0   0
    # 1  bar    one  1   2
    # 2  foo    two  2   4
    # 3  bar  three  3   6
    # 4  foo    two  4   8
    # 5  bar    two  5  10
    # 6  foo    one  6  12
    # 7  foo  three  7  14
    
    print(df.loc[df['A'] == 'foo'])

    产量

         A      B  C   D
    0  foo    one  0   0
    2  foo    two  2   4
    4  foo    two  4   8
    6  foo    one  6  12
    7  foo  three  7  14

    如果您想要包含多个值,请将它们放入
    列表(或更一般地,任何可迭代),并使用isin:

    print(df.loc[df['B'].isin(['one','three'])])

    产量

         A      B  C   D
    0  foo    one  0   0
    1  bar    one  1   2
    3  bar  three  3   6
    6  foo    one  6  12
    7  foo  three  7  14

    但请注意,如果你想这样做很多次,它是更有效的
    首先创建一个索引,然后使用df.loc:

    df = df.set_index(['B'])
    print(df.loc['one'])

    产量

           A  C   D
    B              
    one  foo  0   0
    one  bar  1   2
    one  foo  6  12

    或者,从索引中包含多个值使用df.index.isin:

    df.loc[df.index.isin(['one','two'])]

    产量

           A  C   D
    B              
    one  foo  0   0
    one  bar  1   2
    two  foo  2   4
    two  foo  4   8
    two  bar  5  10
    one  foo  6  12
  • 相关阅读:
    架构师如何才能够设计一个安全的架构
    Google Analytics实用用小技巧
    如何从Linux系统中删除用户账户
    使用C++编译器的编译流程
    JavaScript中双叹号的使用实例
    Android合并文件的三种方式代码
    自学Linux命令的四种方法
    前端工程师必备实用网站
    给 iOS App 开发者的 39 个开源的 Swift UI 库
    关于iOS项目的一本书
  • 原文地址:https://www.cnblogs.com/to-creat/p/7724562.html
Copyright © 2011-2022 走看看