【发布时间】:2018-06-21 10:26:02
【问题描述】:
我有一个如下所示的数据框。
import pandas as pd
raw_data = {'score': [1,2,3],
'tags': [['apple','pear','guava'],['truck','car','plane'],['cat','dog','mouse']]}
df = pd.DataFrame(raw_data, columns = ['score', 'tags'])
df.query("score==1") 给出第一行作为结果。
但是df.query("tags='apple'") 给出了错误。
如何为“标签”列编写查询。
【问题讨论】:
-
您已将列表存储在 df 中,
query方法无法评估您的表达式来处理此问题。要过滤 df,您需要执行df[df['tags'].apply(lambda x: 'apple' in x)]。在 df 中存储非标量值是无效的,你不能指望通常的 pandas 操作像正常一样工作 -
@EdChum,哎呀,同时编辑了我的帖子。但我也将添加另一种选择:)
-
@jpp 不用担心,我确信这是一个骗局,尽管不是专门用于让
query处理列表
标签: python python-3.x pandas dataframe