【问题标题】:Filter data frame based on index value in Python [duplicate]根据Python中的索引值过滤数据框[重复]
【发布时间】:2019-04-28 04:41:24
【问题描述】:

我有一个包含数千行的数据框df,示例如下:

    Index           A   B   C   D   E   F               
    EX-A.1.A.B-1A  18   7   2   2   9   8       
    EX-A.1.A.B-1C   0   0   0   0   0   0       
    EX-A.1.A.B-4A   6   4   8   6   1   1   
    EX-A.1.A.B-4C   0   0   0   0   0   0   
    EX-A.1.A.B-4F   0   0   0   0   0   0

我还有一个列表my_list = ["EX-A.1.A.B-1A","EX-A.1.A.B-4A","EX-A.1.A.B-4F"]

我想根据这个列表过滤df,因此我想保留索引值在列表my_list中的行。

我尝试这样做是为了创建一个新的过滤 df:Filter_df = df[df.index in my_list],但我得到了这个错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().

关于如何做到这一点的任何想法?谢谢

【问题讨论】:

  • 使用Filter_df = df.loc[my_list]
  • 或者这个:Filter_df = df.loc[ df.index.intersection(my_list) ]

标签: python pandas


【解决方案1】:

试试这个:

Filter_df  = df[df.index.isin(my_list)]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 2019-02-16
  • 2021-10-25
  • 2020-08-16
  • 1970-01-01
相关资源
最近更新 更多