如果列是列表,是否可以过滤Pandas DataFrame列?

时间:2015-01-14 20:19:03

标签: python pandas

import pandas as pd

dafr = pd.DataFrame({'a': [1,2,3], 'b': [[1,2,3],[2,3,4],[3,4,5]]})

我尝试做类似的事情:

dafr[dafr['b'].isin(2)]

应返回包含列表的行:[1,2,3]& [2,3,4]。

我想知道这是否可能?

3 个答案:

答案 0 :(得分:3)

isin返回列值是否在您传递的内容中。您想要检查您传递的内容是否在列值中。

据我所知,没有直接的快捷方式,但你可以使用map来实现:

>>> dafr[dafr.b.map(lambda x: 2 in x)]
    a          b
0  1  [1, 2, 3]
1  2  [2, 3, 4]

答案 1 :(得分:2)

dafr[dafr['b'].apply(lambda x: 2 in x)]

答案 2 :(得分:0)

如果您将b存储为元组列而不是列列,with zipfile.ZipFile("test.zip","r") as file: file.extractall(folder_path) 会很快执行。