我有一个pandas data frame object
列,其中每一行都是numpy array
:
df=pd.DataFrame({'UNIGRAMA': {0: array(['on', 'line', ' atenção'], dtype='<U13'),
1: array(['futurar', ' filhar', ' preparar'], dtype='<U12'),
2: array(['compromisso', ' educação', ' student'], dtype='<U11')}})
UNIGRAMA
0 [on, line, atenção]
1 [futurar, filhar, preparar]
2 [compromisso, educação, student]
我想对这个numpy array
的每个单词应用一个dictionary
(如果这个单词不存在,我需要保留原来的单词(。而且它必须只带来最终结果中的唯一单词
这是我的dictionary
:
dicionario2 = {'compromisso': 'commitment',
'filhar' : 'student',
'futurar' : 'futuro',
'on' : 'on-line',
'line' : 'on-line'}
我想要的结果:
unique
0 [on-line, atenção]
1 [futuro, student, preparar]
2 [commitment, educação, student]
到目前为止我尝试过的:
df['UNIGRAMA'].explode().replace(dicionario2, regex = True).groupby(level=0).agg({'unique'})
但它带来的不仅仅是独特的词语。
提前感谢
尝试通过explode()
、replace()
和groupby()
:
df['UNIGRAMA']=df['UNIGRAMA'].explode().replace(dicionario2, regex=True).groupby(level=0).apply(np.unique)
df
:的输出
UNIGRAMA
0 [commitment, aprendizagem, atenção]
1 [futuro, preocupação, preparar]
2 [commitment, educação, student]
我使用的示例数据帧:
from numpy import array
df=pd.DataFrame({'UNIGRAMA': {0: array(['commitment', 'aprendizagem', 'atenção'], dtype='<U13'),
1: array(['futuro', 'preocupação', 'preparar'], dtype='<U12'),
2: array(['compromisso', 'educação', 'student'], dtype='<U11')}})