【问题标题】:Add column with unique identifiers based on values from other columns in pandas根据 pandas 中其他列的值添加具有唯一标识符的列
【发布时间】:2023-03-09 06:48:01
【问题描述】:

我知道了。数据框:

Cnt Year    JD  Min_Temp
S   2000    1   277.139
S   2000    2   274.725
S   2001    1   270.945
S   2001    2   271.505
N   2000    1   257.709
N   2000    2   254.533
N   2000    3   258.472
N   2001    1   255.763
N   2001    2   265.714
N   2001    3   267.943

我想添加一个新列,其中给定“Cnt”的每个单独行都被赋予一个唯一标识符 (1,2,3...)。所以,结果应该是这样的:

Cnt Year    JD  Min_Temp    unq
S   2000    1   277.139     1
S   2000    2   274.725     2
S   2001    1   270.945     3
S   2001    2   271.505     4
N   2000    1   257.709     1
N   2000    2   254.533     2
N   2000    3   258.472     3
N   2001    1   255.763     4
N   2001    2   265.714     5
N   2001    3   267.943     6

这里,每一行对应'Cnt'列中的相同值作为唯一标识符。

目前,我所能做的就是添加一个值增加的新列: df['unq'] = numpy.arange(1,len(df))

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以将groupbycumcount 一起使用

    >>> df["unq"] = df.groupby("Cnt").cumcount() + 1
    >>> df
      Cnt  Year  JD  Min_Temp  unq
    0   S  2000   1   277.139    1
    1   S  2000   2   274.725    2
    2   S  2001   1   270.945    3
    3   S  2001   2   271.505    4
    4   N  2000   1   257.709    1
    5   N  2000   2   254.533    2
    6   N  2000   3   258.472    3
    7   N  2001   1   255.763    4
    8   N  2001   2   265.714    5
    9   N  2001   3   267.943    6
    

    请注意,由于这些组基于 Cnt 列值而不是连续性,因此如果在 N 组下方有第二组 S,则 that 组中的第一个 unq 值将是 5。

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      相关资源
      最近更新 更多