Pandas 如何选择属性列值等于列表中任意一个值的行
如何筛选满足此条件的行: 如果行的属性列包含“attr1”或“attr3”中的任何值,请选择行 预期产出为:Pandas 如何选择属性列值等于列表中任意一个值的行,pandas,Pandas,如何筛选满足此条件的行: 如果行的属性列包含“attr1”或“attr3”中的任何值,请选择行 预期产出为: data = { "name": ["abc", "xyz", "pqr"], "attributes": [["attr2", "attr3"], ["attr2","attr4"], ["attr3", "attr1"] ] } df = pd.DataFrame.from_dict(data) 要获取布尔索引器 name attributes
data = {
"name": ["abc", "xyz", "pqr"],
"attributes": [["attr2", "attr3"], ["attr2","attr4"], ["attr3", "attr1"] ]
}
df = pd.DataFrame.from_dict(data)
要获取布尔索引器
name attributes
0 "abc" ["attr2", "attr3"]
1 "pqr" ["attr3", "attr1"]
然后
之后是否要重置索引取决于您。使用
>>> df.loc[idx]
name attributes
0 abc [attr2, attr3]
2 pqr [attr3, attr1]
>>> df.loc[idx]
name attributes
0 abc [attr2, attr3]
2 pqr [attr3, attr1]
df[pd.DataFrame(df.attributes.tolist()).isin(['attr1','attr3']).any(1)]
Out[295]:
attributes name
0 [attr2, attr3] abc
2 [attr3, attr1] pqr