按元素过滤列表数据

时间:2019-12-20 13:19:49

标签: python pandas list dataframe filter

我有一个列表和数据框(下面的示例)。

                                     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

1 个答案:

答案 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