Python 如果列是列表,是否可以筛选DataFrame列?
我试着做一些事情,比如:Python 如果列是列表,是否可以筛选DataFrame列?,python,pandas,Python,Pandas,我试着做一些事情,比如: import pandas as pd dafr = pd.DataFrame({'a': [1,2,3], 'b': [[1,2,3],[2,3,4],[3,4,5]]}) 它应该返回具有列表[1,2,3]&[2,3,4]的行 我想知道这是否可能?isin返回列值是否在您传递的内容中。您要检查传递的内容是否在列值中 据我所知,没有直接的快捷方式,但您可以使用map: dafr[dafr['b'].isin(2)] 如果将b存储为元组列而不是列表列,afr[daf
import pandas as pd
dafr = pd.DataFrame({'a': [1,2,3], 'b': [[1,2,3],[2,3,4],[3,4,5]]})
它应该返回具有列表[1,2,3]&[2,3,4]的行
我想知道这是否可能?
isin
返回列值是否在您传递的内容中。您要检查传递的内容是否在列值中
据我所知,没有直接的快捷方式,但您可以使用map
:
dafr[dafr['b'].isin(2)]
如果将b存储为元组列而不是列表列,
afr[dafr['b'].apply(lambda x:2 in x)]
将执行得相当快。通常不希望在数据帧中存储非标量值。也许有更好的方法来构造数据帧,或者数据帧不是数据的正确存储。最快的回复令人赞叹!为欣赏简短的解释而接受。
>>> 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)]