【问题标题】:Creating ID for every row based on the observations in variable根据变量中的观察为每一行创建 ID
【发布时间】:2023-01-13 20:44:26
【问题描述】:

想要创建一个系统,其中变量中的观察值使用 Python 引用数字。来自(在本例中)5 个不同变量的所有数字共同构成一个唯一代码。第一个数字对应于第一个变量。当不同行中的观察值与第一行相同时,应用相同的数字。如示例中所示,如果苹果出现在第 1 行和第 3 行,则两个 ID 的第一个数字都是“1”。

输出应该给出一个带有 ID 的新列。如果一行中的所有观察值都相同,则 ID 将相同。在下图中,您可以看到 5 个变量导致右侧的唯一 ID,这应该是输出。

【问题讨论】:

    标签: python pandas for-loop dataset variable-assignment


    【解决方案1】:

    你可以使用pd.factorize

    df['UniqueID'] = (df.apply(lambda x: (1+pd.factorize(x)[0]).astype(str))
                        .agg(''.join, axis=1))
    print(df)
    
    # Output
            Fruit     Toy Letter      Car Country UniqueID
    0       Apple    Bear      A  Ferrari  Brazil    11111
    1  Strawberry  Blocks      B  Peugeot   Chile    22222
    2       Apple  Blocks      C  Renault   China    12333
    3      Orange    Bear      D     Saab   China    31443
    4      Orange    Bear      D  Ferrari   India    31414
    

    【讨论】:

      猜你喜欢
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多