You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python DataFrame中创建IMEI与IMSI配对索引的实现方法咨询

实现方案

核心逻辑说明

你现有代码仅统计了IMEI的出现次数,丢失了原始的IMEI与IMSI配对明细,需要先保留原始记录再生成两类索引:

  • 索引A:先按IMEI对应的出现次数降序排序后,给每个唯一IMEI分配从1开始的连续序号
  • 索引B:在同一个IMEI分组内,按原始数据中IMSI的出现顺序,分配从1开始的连续序号

完整可运行代码

import pandas as pd
import numpy as np

# 1. 读取原始数据,保留所有IMEI、IMSI配对明细(注意read_csv有下划线)
df_raw = pd.read_csv('file.csv', usecols=['Imei', 'Imsi'])

# 2. 统计每个IMEI的出现次数,生成索引A
df_imei_stat = df_raw.groupby('Imei', as_index=False)['Imsi'].count()\
    .rename(columns={'Imsi': 'Occurences'})\
    .sort_values(by='Occurences', ascending=False)\
    .reset_index(drop=True)
# 按排序后的顺序给IMEI分配A索引,从1开始
df_imei_stat['A'] = df_imei_stat.index + 1

# 3. 把A索引关联回原始明细数据
df_result = df_raw.merge(df_imei_stat[['Imei', 'A', 'Occurences']], on='Imei', how='left')

# 4. 生成索引B:同一个IMEI(即同一个A值)下按出现顺序编号,从1开始
df_result['B'] = df_result.groupby('A').cumcount() + 1

# 可选:按A、B排序得到规整的展示效果
df_result = df_result.sort_values(by=['A', 'B']).reset_index(drop=True)

# 输出查看结果
print(df_result)

可选优化

如果同一个IMEI下重复出现的相同IMSI不需要重复编号,可在读取原始数据后先执行去重:

df_raw = df_raw.drop_duplicates(subset=['Imei', 'Imsi'], keep='first').reset_index(drop=True)

内容的提问来源于stack exchange,提问作者Gaurav Raina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:06:01