Python 如何使用Pandas筛选分隔变量
我的输入数据框是Python 如何使用Pandas筛选分隔变量,python,pandas,filter,Python,Pandas,Filter,我的输入数据框是 list_of_dicts1 = {"Filter":["c",'a|b']} test1 = pd.DataFrame(list_of_dicts1) list_of_dicts2 = {"C":["d",'a', 'b']} test2 = pd.DataFrame(list_of_dicts2) 所需输出为 list_of_dicts3 = {"C":['a', 'b']
list_of_dicts1 = {"Filter":["c",'a|b']}
test1 = pd.DataFrame(list_of_dicts1)
list_of_dicts2 = {"C":["d",'a', 'b']}
test2 = pd.DataFrame(list_of_dicts2)
所需输出为
list_of_dicts3 = {"C":['a', 'b']}
test3 = pd.DataFrame(list_of_dicts3)
如何使用pandas根据test1数据帧的筛选列(以管道分隔)筛选数据帧test2?使用split和explode值通过以下方式拆分:
对于较旧版本:
df = test2[test2['C'].isin(test1['Filter'].str.split('|', expand=True).stack())]
print (df)
我认为应该将变量“a”和“b”分开,然后:
test3=test1[test1['Filter'].isin(test2['C'])]
test3=test1[test1['Filter'].isin(test2['C'])]