假设我有以下pandas数据帧:
df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]})
df
A B
0 5 1
1 6 2
2 3 3
3 4 5
Run Code Online (Sandbox Code Playgroud)
我可以根据特定值进行子集化:
x = df[df['A'] == 3]
x
A B
2 3 3
Run Code Online (Sandbox Code Playgroud)
但是我如何根据值列表进行子集化? - 这样的事情:
list_of_values = [3,6]
y = df[df['A'] in list_of_values]
Run Code Online (Sandbox Code Playgroud) 我有一个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
Run Code Online (Sandbox Code Playgroud)
我也有一份清单 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(). …Run Code Online (Sandbox Code Playgroud)