【问题标题】:Auto re-assign ids in a dataframe在数据框中自动重新分配 id
【发布时间】:2022-08-03 20:52:08
【问题描述】:

我有以下数据框:

import pandas as pd
data = {\'id\': [542588, 542594, 542594, 542605, 542605, 542605, 542630, 542630],
 \'label\': [3, 3, 1, 1, 2, 0, 0, 2]}

df = pd.DataFrame(data)
df

      id   label
0   542588  3
1   542594  3
2   542594  1
3   542605  1
4   542605  2
5   542605  0
6   542630  0
7   542630  2

id 列包含大整数(6 位)。我想要一种方法来简化它,从10开始,让542588变成10542594变成11,等等...

所需输出:


    id label
0   10  3
1   11  3
2   11  1
3   12  1
4   12  2
5   12  0
6   13  0
7   13  2

    标签: python pandas


    【解决方案1】:

    你可以试试

    df['id'] = df.groupby('id').ngroup().add(10)
    
    print(df)
    
       id  label
    0  10      3
    1  11      3
    2  11      1
    3  12      1
    4  12      2
    5  12      0
    6  13      0
    7  13      2
    

    【讨论】:

      【解决方案2】:
      new_ids = dict()
      new_id = 10
      
      for old_id in df['id']:
          if old_id not in new_ids:
              new_ids[old_id] = new_id
              new_id += 1
      
      df['id'] = df['id'].map(new_ids)
      

      【讨论】:

        猜你喜欢
        • 2020-02-19
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        • 2016-11-16
        • 1970-01-01
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        相关资源
        最近更新 更多