【问题标题】:how to create unique ID for pairs如何为对创建唯一 ID
【发布时间】:2022-11-28 13:58:47
【问题描述】:

我有存储两个客户关系的熊猫数据框,如下所示。如何为关联客户创建唯一 ID?

import pandas as pd
  
# initialize list of lists
data = [['A1', 'A1'], 
        ['A1', 'A2'], 
        
        ['A2', 'A1'],
        ['A2', 'A3'],
        
        ['A3', 'A2'],
        ['A3', 'A4'],
        
        ['A4', 'A3'],
        ['A4', 'A5'],
        
        ['B1', 'B1'], 
        ['B1', 'B2'], 
        
        ['B2', 'B1'],
        ['B2', 'B3'],
        
        ['B3', 'B2'],
        ['B3', 'B4'],
        
        ['B4', 'B3'],
        ['B4', 'B5']
        ]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['cust_1', 'cust_2'])
  
# print dataframe.
df

最终结果应该如下所示:

非常感谢。

【问题讨论】:

  • 这些ID似乎不是很独特......
  • 计算ID背后的逻辑是什么?

标签: python


【解决方案1】:

如果只有A和B,可以简单的看起点计算ID。

In [12]: df['Unique_ID'] = df['cust_1'].map(lambda x: 'ID1' if x.startswith('A')
    ...:  else 'ID2')                                                           

In [13]: df                                                                     
Out[13]: 
   cust_1 cust_2 Unique_ID
0      A1     A1       ID1
1      A1     A2       ID1
2      A2     A1       ID1
3      A2     A3       ID1
4      A3     A2       ID1
5      A3     A4       ID1
6      A4     A3       ID1
7      A4     A5       ID1
8      B1     B1       ID2
9      B1     B2       ID2
10     B2     B1       ID2
11     B2     B3       ID2
12     B3     B2       ID2
13     B3     B4       ID2
14     B4     B3       ID2
15     B4     B5       ID2

这里如果组中的第一个元素是A,则id为ID1,如图所示,如果是B,则id为ID2,如图所示。

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2012-03-26
    相关资源
    最近更新 更多