Применить словарь к текстовым данным - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть следующий словарь:

{0: 'group',
 1: 'still',
 2: 'earnings',
 3: 'shares',
 4: 'make',
 5: 'finally',
 6: 'amazon',
 7: 'deals',
 8: 'comes',
 9: 'york',
 10: 'iphones'}

print(df)

         0            1            2    ...     53      54         55
0      Group         still       shares  ...    deals  york     iphones
1      amazon        shares       make  ...    finally iphones earnings
...

Последний получен при разборке статьи с помощью:

 df = df["text_articles"].str.split(" ", expand = True) 

Как я могу в конечном итоге перевести каждую строку кадра данных, используя словарь, в конечном итогесоздание:

print(final_df)

         0            1            2    ...     53      54         55
0        0            1            3  ...       7       9          10
1        6            3            4  ...       5      10           2
...

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Я думаю, что ваш запрос мог бы быть хорошо обработан с помощью df.replace
Но сначала вам нужно будет перевернуть ваш словарь.

d = {v:k for k, v in d.items()}
df = df.replace(d)
0 голосов
/ 24 ноября 2018

Использование:

print (df)
        0       1       2       53       54       55
0   Group   still  shares    deals     york  iphones
1  amazon  shares    make  finally  iphones       aa

Первая замена ключей со значениями в новом словаре:

d1 = {v:k for k, v in d.items()}

Если необходимо использовать несуществующие значения, заменить на NaN s использовать map с lower:

df = df.apply(lambda x: x.str.lower().map(d1))
print (df)
   0  1  2  53  54    55
0  0  1  3   7   9  10.0
1  6  3  4   5  10   NaN

Или, если хотите, заменить несуществующее значение на тот же скаляр, например -1:

df = df.applymap(lambda x: d1.get(x.lower(), -1))
print (df)
   0  1  2  53  54  55
0  0  1  3   7   9  10
1  6  3  4   5  10  -1

Ипоследний, если не хотите изменений:

df = df.apply(lambda x: x.str.lower()).replace(d1)
print (df)
   0  1  2  53  54  55
0  0  1  3   7   9  10
1  6  3  4   5  10  aa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...