【问题标题】:Filtering for Dataframe - columns and rows过滤数据框 - 列和行
【发布时间】:2016-03-22 04:39:36
【问题描述】:

我想对 Pandas Dataframe 执行过滤。 示例表如下所示。例如,我想过滤(删除)所有包含值 2 的列。

C1 C2 C3 C4 C5
1  1  1  1  4
1  2  1  2  5
1  1  3  1  4

我想要这样的结果表。 (删除了 C2 和 C4)

C1 C3 C5
1  1  4
1  1  5
1  3  4

另外,我想在行上完成这项工作,使用值 5。

C1 C3 C5
1  1  4
1  3  4

对于单列或单行,我可以很容易地做到这一点,例如 df = df[df.C2 !=2],但对于多列或整列和行我没有好主意. 有什么简单的方法吗?

【问题讨论】:

    标签: python pandas dataframe filtering


    【解决方案1】:

    您可以通过locany 选择并指定axis

    print df
       C1  C2  C3  C4  C5
    0   1   1   1   1   4
    1   1   2   1   2   5
    2   1   1   3   1   4
    
    print ~(df == 2)
         C1     C2    C3     C4    C5
    0  True   True  True   True  True
    1  True  False  True  False  True
    2  True   True  True   True  True
    
    df = df.loc[:, ~(df == 2).any(axis=0)]
    print df
       C1  C3  C5
    0   1   1   4
    1   1   1   5
    2   1   3   4
    
    df = df.loc[~(df == 5).any(axis=1)]
    print df
       C1  C3  C5
    0   1   1   4
    2   1   3   4
    

    【讨论】:

    • 我什么都不知道,但它似乎对处理表格非常有用。谢谢你的建议。
    猜你喜欢
    • 2017-11-12
    • 1970-01-01
    • 2021-05-16
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多