我有一个csv文件,它遵循以下格式
<表类>
列一个
列两个
tbody><<tr>Key1 Value1, Value2, value3 Key2 value5 表类>
您可以对数据框进行Stack
重塑,然后对split
和explode
进行字符串重塑,然后使用isin
测试list_keep
中是否出现字符串,然后在level=0
上测试groupby
,并使用any
进行约简以创建布尔掩码:
mask = df.stack().str.split(',').explode().isin(list_keep).groupby(level=0).any()
applymap
和set
操作的替代方法:
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