【问题标题】:Normalizing data based on row data基于行数据规范化数据
【发布时间】:2017-08-06 02:24:59
【问题描述】:

我有一个带有 ID 和月份的 pandas df,如果 ID/月份第一次出现在数据集中,我想做的是用数字标记它

ID     Month      Number
123    201501     1
123    201502     2
123    201503     3
234    201502     1
234    201503     2
455    201503     1

因此,您可以看到 ID 123 在每个月的数据集中多次出现。此外,ID 234 仅出现在月份 201502 中。我想做的是在激活时用数字标记行。

您能建议吗?


不确定出了什么问题,但这是我从您提供的公式中得到的输出:

ID  Month   Num
12  201510  1
12  201511  17
12  201512  2
12  201601  3
12  201602  4
12  201603  5
12  201604  6
12  201605  7
12  201606  8
12  201607  9
12  201608  10
12  201609  11
12  201610  12
12  201611  13
12  201612  14
12  201701  15
12  201702  16

【问题讨论】:

    标签: python pandas normalization


    【解决方案1】:

    看来你可以使用cumcount:

    df = df.sort_values(['ID', 'Month']).reset_index()
    df['num'] = df.groupby('ID').cumcount() + 1
    print (df)
        ID   Month  Number  num
    0  123  201501       1    1
    1  123  201502       2    2
    2  123  201503       3    3
    3  234  201502       1    1
    4  234  201503       2    2
    5  455  201503       1    1
    

    【讨论】:

    • 不知道出了什么问题,但我会分享一些输出
    猜你喜欢
    • 1970-01-01
    • 2018-01-29
    • 2021-10-28
    • 2016-07-23
    • 2013-07-31
    • 2013-11-08
    • 2017-10-14
    • 2013-11-10
    • 2017-01-14
    相关资源
    最近更新 更多