合并中嵌入的for循环

时间:2019-06-18 09:41:15

标签: python pandas

我在论坛上提出了一个问题,有人非常友好地为我提供了答案。但是,我无法理解以下代码段的结尾中的代码:

数据

#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()

0 个答案:

没有答案