当单元格有多个值时,如何对单个值查询/过滤单元格?



我有一个csv文件,它遵循以下格式

<表类> 列一个 列两个 tbody><<tr>Key1Value1, Value2, value3Key2value5

您可以对数据框进行Stack重塑,然后对splitexplode进行字符串重塑,然后使用isin测试list_keep中是否出现字符串,然后在level=0上测试groupby,并使用any进行约简以创建布尔掩码:

mask = df.stack().str.split(',').explode().isin(list_keep).groupby(level=0).any()

applymapset操作的替代方法:

mask = df.applymap(lambda s: not set(s.split(',')).isdisjoint(list_keep)).any(1)

>>> df[mask]
Columns one            Column two
0        Key1  Value1,Value2,value3

相关内容

  • 没有找到相关文章

最新更新