【问题标题】:add 'id' in pandas dataframe在熊猫数据框中添加“id”
【发布时间】:2018-10-06 11:31:36
【问题描述】:

我有一个数据框,DOCUMENT_ID 是唯一的 ID,它将包含 WORD 列中的多个单词。我需要为该文档中的每个单词添加 ID。

我需要添加

    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

我也添加了空单元格,但可以忽略。

【问题讨论】:

    标签: regex pandas numpy


    【解决方案1】:

    回答

    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
    
    1. 鉴于您的单词嵌套在唯一的 Document_ID 中,我们需要一个 group by 操作。

    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
    

    【讨论】:

      猜你喜欢
      • 2022-09-24
      • 1970-01-01
      • 2017-09-09
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 2017-02-11
      相关资源
      最近更新 更多