代码之家  ›  专栏  ›  技术社区  ›  Brian

如何使用序列筛选数据帧

  •  2
  • Brian  · 技术社区  · 6 年前

    我有一个熊猫系列,内容如下。

    $ import pandas as pd
    $ s = pd.Series(
        data = [True, False, True, True],
        index = ['A', 'B', 'C', 'D']
        )
    $ s.index.name = 'my_id'
    
    $ print(s)
    
    my_id
    A     True
    B    False
    C     True
    D     True
    dtype: bool
    

    像这样的数据帧。

    $ df = pd.DataFrame({
        'A': [1, 2, 9, 4],
        'B': [9, 6, 7, 8],
        'C': [10, 91, 32, 13],
        'D': [43, 12, 7, 9]
    })
    
    $ print(df)
    
       A  B   C   D
    0  1  9  10  43
    1  2  6  91  12
    2  9  7  32   7
    3  4  8  13   9
    

    s A , B , C ,和 D 作为它的指标。 df 也有 一个 , , C类 ,和 列名称。

    True 在里面 s公司 表示中的相应列 数据框 将被保留。 False 在里面 s公司 表示中的相应列 数据框 将被删除。

    如何使用 s公司 ?

    我是说我想用 s公司 数据框 .

       A   C   D
    0  1  10  43
    1  2  91  12
    2  9  32   7
    3  4  13   9
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Seananigan Emma    6 年前

    使用 boolean indexing 具有 DataFrame.loc . 这个 : 意味着过滤所有行。列按筛选 Series 用布尔值填充- mask :

    df1 = df.loc[:, s]
    print (df1)
    
       A   C   D
    0  1  10  43
    1  2  91  12
    2  9  32   7
    3  4  13   9