我有一个列表和数据框(下面的示例)。
0 1
0 ((test1, AA), (1, 1)) 1
1 ((test2, BB), (1, 1)) 2
2 ((test1, CC), (1, 1)) 3
3 ((test1, DD), (2, 1)) 8
4 ((test3, EE), (3, 1)) 9
我只需要过滤出第一个元素为“ test1”和“ 1”的数据。你能帮忙吗?
预期输出:
0 1
0 ((test1, AA), (1, 1)) 1
2 ((test1, CC), (1, 1)) 3
答案 0 :(得分:2)
您可以使用布尔索引:
v = df[0].apply(lambda i: i[0][0] == 'test1' and i[1][0] == 1)
df = df[v]
print(df)
输出
0 1
0 ((test1, AA), (1, 1)) 1
2 ((test1, CC), (1, 1)) 3