在 python 数据框中创建索引查找
To Create index lookup in python dataframe
![在此处输入图片描述][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 开始按顺序打印它们,如图所示
使用cumsum
计算IMEI Index
,使用groupby_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
![在此处输入图片描述][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 开始按顺序打印它们,如图所示
使用cumsum
计算IMEI Index
,使用groupby_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