尝试将此逻辑应用于以下df
我有一个df如下
import pandas as pd
import numpy as pd
df = pd.read_csv('subjects.csv')
Subjects
Media
information Media
Digital Media
然后,我尝试将我的主题映射到一个dict,以输出一个经过验证的更正的主题
d = {'Media' : 'Film & Media',
'Information' : 'ICT',
'Digital' : 'ICT'}
df['subject_corrected'] = df['subjects'](lambda x: ', '.join([d[i] for i in d if i in x]))
Subjects subject_corrected
Media Film & Media
information Media Film & Media, ICT
Digital Media Film & Media, ICT
现在用这个循环通过我的df给我
全部的
匹配,我希望它找到最接近的匹配并退出循环。所以数字媒体就是信息和通信技术
不
媒体
我试过以下的方法,但对我来说并不是什么好兆头!对于
for k,v in d.items():
if k in df['subjects']:
df['subject_corrected'] = d.values():
Subjects subject_corrected
Media Film & Media
information Media ICT
Digital Media ICT
我看了很多类似的帖子,但没能搞定。
我是不是走错了路,我应该把它传递到两个列表/数组中,并使用if语句循环任何匹配项?另外,dict与2d数组有何不同。
如有任何帮助,我们将不胜感激。