我有一个Pandas DataFrame,它在其中一列中存储列表:
>>> import pandas as pd
>>> d = [{'name': 'john', 'properties': ['a','b']},
... {'name': 'mary', 'properties': ['a','c']}]
>>> df = pd.DataFrame(d)
>>> df
name properties
0 john [a, b]
1 mary [a, c]
如何按列表成员资格进行过滤?例如,列出所有在 properties 列中带有'c'的行。
我知道我可以爆炸 properties 列:
df.explode('properties')
但我希望将其保留为列表。
答案 0 :(得分:1)
您可以使用map
。
df[df.properties.map(lambda x: 'c' in x)]