首页 > 解决方案 > 找出一系列整数中的跳过值

问题描述

我的数据框中有一列是不包含重复的客户 ID。id 系列从整数 1 开始,到 4003 结束。如以下输出所示,有 4 个 id 编号被跳过。我想要一些帮助来找出它们是什么。提前致谢!

df['customer_id'].describe()
Out[150]: 
count     3999
unique    3999
top       4003
freq         1
Name: customer_id, dtype: int64

标签: pythonpandasdataframeindexing

解决方案


以下面dataframe为例:

In [2454]: df
Out[2454]: 
   customer_id
0            1
1            2
2            3
3            4
4            5
5            8
6            9
7           10

您可以使用set symmetric difference

In [2437]: a = df['customer_id'].tolist()
In [2431]: b = [x for x in range(a[0], a[-1] + 1)]

In [2438]: missing_vals = list(set(a) ^ set(b))

In [2439]: missing_vals
Out[2439]: [6, 7]

推荐阅读