繁体   English   中英

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

[英]Is it possible to filter Pandas DataFrame column if column is a list?

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]。

我想知道这是否可能?

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

据我所知,没有直接的捷径,但是您可以使用map

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

如果将b存储为元组列而不是列表列,则afr[dafr['b'].apply(lambda x: 2 in x)]将执行得非常快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM