我有一个数据框,我在一个字段上进行多个正则表达式子字符串搜索,以确定哪些"系列"这个字符串属于。这是一个相当昂贵的搜索,所以我想在Pandas列中保存它的结果,以便更快地检索。 Pandas有一个很好的change
方法来确定单个检索项是否在给定的查询集中,但我不确定如何完成逆操作。
这是一个简单的1行示例:
isin()
我希望能够查询包含特定家庭关系的所有行的DataFrame(例如" famA")。什么是最有效的方法?
答案 0 :(得分:0)
从示例中很难说,但是可以存储家庭关系而不是单独的列吗?例如,您可以为每个族包含一个布尔列。类似的东西:
In [54]: df
Out[54]:
FamA FamB FamC FamD FamE text
0 True True False False True the quick brown fox jumps over the lazy dog
看起来以这种方式填充框架并检查某个特定行中的特定行是否会很简单就好了。在数据框单元格中存储列表似乎不是一个好主意。如果您展示了如何从字符串生成族列表的示例,我可以通过这种方式帮助填充。另一个更接近你所拥有的建议是将家庭存储在单个字符串而不是列表中,例如
In [64]:
from pandas import DataFrame
example = DataFrame({"text": "the quick brown fox jumps over the lazy dog", "families": "famA famB famE"}, index=[0])
example
Out[64]:
families text
0 famA famB famE the quick brown fox jumps over the lazy dog
然后你可以做
In [63]:
example.families.str.contains("famA")
Out[63]:
0 True
Name: families, dtype: bool