我有一本字典,其中的键是型号名称,值是关键字。我想过滤字符串包含字典值中的关键字之一的列中的每一行。 匹配应该不区分大小写。
字典看起来像这样:
{'J7 2017': [' J730F', 'amoled'], 'J5 2017': ['J530', 'TFT']}
数据框如下:
name
0 SCREEN SAMSUNG FULL AMOLED
1 SCREEN SAMSUNG J7 J730F 2017
2 WYŚWIETLACZ LCD + DIGITIZER SAMSUNG J5 2017 (J530)
3 3 colors SCREEN LCD SAMSUNG Galaxy J5 TFT
4 LG K10 K410 K420N K430
结果,我希望将模型名称[key]存储在单独的数据框中,并且所有行都带有我的关键字
所以输出将是:
dfJ72017:
name
0 SCREEN SAMSUNG FULL AMOLED
1 SCREEN SAMSUNG J7 J730F 2017
dfJ52017:
name
0 WYŚWIETLACZ LCD + DIGITIZER SAMSUNG J5 2017 (J530)
1 3 colors SCREEN LCD SAMSUNG Galaxy J5 TFT
对字典中的所有键和值执行此操作。
答案 0 :(得分:0)
将dict理解与str.contains
一起使用并按boolean indexing
进行过滤,OR
在此用于正则表达式d = {'J7 2017': [' J730F', 'AMOLED'], 'J5 2017': ['J530', 'TFT']}
dfs = {k: df[df['name'].str.contains('|'.join(v))] for k, v in d.items()}
print (dfs)
{'J7 2017': name
0 SCREEN SAMSUNG FULL AMOLED
1 SCREEN SAMSUNG J7 J730F 2017, 'J5 2017': name
2 WYŚWIETLACZ LCD + DIGITIZER SAMSUNG J5 2017 (J...
3 3 colors SCREEN LCD SAMSUNG Galaxy J5 TFT}
:
<router-outlet></router-outlet>