добавить 'id' в панде - PullRequest
       4

добавить 'id' в панде

0 голосов
/ 26 апреля 2018

У меня есть датафрейм, DOCUMENT_ID - это уникальный идентификатор, который будет содержать несколько слов из столбца WORD.Мне нужно добавить идентификаторы для каждого слова в этом документе.

Мне нужно добавить

    DOCUMENT_ID         WORD    COUNT
0   262056708396949504          4
1   262056708396949504  DVD     1
2   262056708396949504  Girls   1
3   262056708396949504  Gone    1
4   262056708396949504  Gras    1
5   262056708396949504  Hurricane   1
6   262056708396949504  Katrina 1
7   262056708396949504  Mardi   1
8   262056708396949504  Wild    1
10  262056708396949504  donated 1
11  262056708396949504  generated   1
13  262056708396949504  revenues    1
15  262056708396949504  themed  1
17  262056708396949504  torwhore    1
18  262056708396949504  victims 1
20  262167541718319104      18
21  262167541718319104  CCUFoodMan  1
22  262167541718319104  CCUinvolved 1
23  262167541718319104  Congrats    1
24  262167541718319104  Having  1
25  262167541718319104  K   1
29  262167541718319104  blast   1
30  262167541718319104  blasty  1
31  262167541718319104  carebrighton    1
32  262167541718319104  hurricane   1
34  262167541718319104  started 1
37  262197573421502464      21

Мой ожидаемый результат:

    DOCUMENT_ID         WORD     COUNT WORD_ID
0   262056708396949504          4       1 
1   262056708396949504  DVD     1       2
2   262056708396949504  Girls   1       3
3   262056708396949504  Gone    1
4   262056708396949504  Gras    1
.........
20  262167541718319104            18    1
21  262167541718319104  CCUFoodMan  1  2
22  262167541718319104  CCUinvolved 1  3

Я также добавил для пустых ячеек, но можно игнорировать.

1 Ответ

0 голосов
/ 26 апреля 2018

Ответ

df['WORD_ID'] = df.groupby(['DOCUMENT_ID']).cumcount()+1

Объяснение

  1. Давайте построим DataFrame.

import pandas as pd

df = pd.DataFrame({'DOCUMENT_ID' : [262056708396949504, 262056708396949504, 262056708396949504, 262056708396949504, 262167541718319104, 262167541718319104, 262167541718319104], 'WORD' : ['DVD', 'Girls', 'Gras', 'Gone', 'DVD', 'Girls', "Gone"]})

df

          DOCUMENT_ID   WORD
0  262056708396949504    DVD
1  262056708396949504  Girls
2  262056708396949504   Gras
3  262056708396949504   Gone
4  262167541718319104    DVD
5  262167541718319104  Girls
6  262167541718319104   Gone
Учитывая, что ваши слова вложены в уникальный Document_ID, нам нужна группировка по операции.

df['WORD_ID'] = df.groupby(['DOCUMENT_ID']).cumcount()+1

Выход:

          DOCUMENT_ID   WORD  WORD_ID
0  262056708396949504    DVD        1
1  262056708396949504  Girls        2
2  262056708396949504   Gras        3
3  262056708396949504   Gone        4
4  262167541718319104    DVD        1
5  262167541718319104  Girls        2
6  262167541718319104   Gone        3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...