如何基于字典列字段列表中的键值对过滤DataFrame行?

问题描述 投票:4回答:1

我有一个DataFrame,其中一列/字段是一长串字典。我只想将行保留在DataFrame的子集中,其中字典列表包含某个字典条目。我不想过滤字典列表,只检索所需条目存在的行(通常在许多其他条目中),使所有其他列/字段保持完整。

这里是模拟df

df = pd.DataFrame({'bird': ['robin', 'jay', 'pelican', 'duck'], 'beaky': ['yes', 'yes', 'yes', 'yes'], 'feathers': [[{'type':'thing', 'id':'1a'}, {'type':'thing', 'id':'5a'}] , [{'type': 'thing', 'id':'2a'},{'type':'thing', 'id':'1a'}],[{'type': 'thing', 'id':'3a'},{'type': 'thing', 'id':'4a'}],[{'type':'thing', 'id':'2a'}, {'type':'thing', 'id':'3a'}]]})

df

上面df示例的伪代码...

选择DataFrame中df ['feathers']包含{'type':'thing','id':'3a'}的行

python pandas dictionary
1个回答
3
投票

先转换为字符串然后str.contains

m=df.feathers.astype(str).str.contains("{'type': 'thing', 'id': '3a'}")
0    False
1    False
2     True
3     True
Name: feathers, dtype: bool
df=df[m]
热门问题
推荐问题
最新问题