【问题标题】:To Create index lookup in python dataframe在 python 数据框中创建索引查找
【发布时间】:2021-11-30 01:30:29
【问题描述】:

![在此处输入图片描述][1]

为“IMEI & IMSI”对创建索引,如下所示:

  • IMEI 索引(命名为 A):按顺序为每个 IMEI 分配一个编号,从整数 1 开始。
  • IMSI索引(命名为B):为每个IMSI分配一个编号,意思是:如果一个IMEI出现多次,配对的IMSI将按顺序分配,例如:1、2、3。 ..][2]

这就是我正在尝试的


import pandas as pd
import numpy as np
df1 = pd.readcsv('file.csv')
df1 = df1[['Imei','Imsi']]
df1 = df1.groupby(['Imei']).count()
df1 = df1.rename(columns = {'Imsi': 'Occurences'})
df1 = df1.sort_values(by=['Occurences'],ascending= False)
df1 = df1.reset_index()


我可以计算出现次数,但我如何才能从 1 开始按顺序打印它们,如图所示

【问题讨论】:

    标签: python pandas numpy csv lookup


    【解决方案1】:

    使用cumsum 计算IMEI Indexgroupby_cumcount 计算IMSI Index

    # Setup
    df = pd.DataFrame({'Imei': {0: 'A', 1: 'A', 2: 'B', 3: 'B', 4: 'C', 5: 'C', 6: 'C', 7: 'D', 8: 'E'}})
    
    df['IMEI Index'] = df['Imei'].ne(df['Imei'].shift()).cumsum()
    df['IMSI Index'] = df.groupby('Imei').cumcount().add(1)
    

    输出:

    >>> df
      Imei  IMEI Index  IMSI Index
    0    A           1           1
    1    A           1           2
    2    B           2           1
    3    B           2           2
    4    C           3           1
    5    C           3           2
    6    C           3           3
    7    D           4           1
    8    E           5           1
    

    【讨论】:

    • @GauravRaina。你的previous problem解决了吗?
    • 是的,我使用了另一个脚本
    猜你喜欢
    • 2020-04-19
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 2020-01-13
    • 2016-06-16
    • 1970-01-01
    相关资源
    最近更新 更多