【发布时间】: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) ]