在Python中根据索引值过滤数据框

时间:2018-11-26 14:00:48

标签: python pandas

我有一个包含数千行的数据帧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().

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

1 个答案:

答案 0 :(得分:1)

尝试:

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