我在论坛上提出了一个问题,有人非常友好地为我提供了答案。但是,我无法理解以下代码段的结尾中的代码:
数据
#data
import pandas as pd
import numpy as np
d = {'business': ['FX','a','CR'],
'A/L': ['A','A','L'],
'Company': ['207','1','2']}
data = pd.DataFrame(data=d)
data
过滤器
#filter
f = {'business':['FX','FX','IR','IR','CR'],
'A/L':['A','L','A','L','#'],
'Company':['207','#','#','207','#']}
filter = pd.DataFrame(data=f)
filter
cols
#cols
cols = filter.columns
最终过滤器
filter['wild'] = filter.apply(lambda x: tuple(col for col in cols
if x[col] != '#'), axis=1)
我发现代码困难
result = pd.concat([data.merge(df, on=k, suffixes=('', '_y'),
right_index=True)[cols]
for k, df in filter.groupby('wild')]).sort_index()