python - 找出一系列整数中的跳过值
问题描述
我的数据框中有一列是不包含重复的客户 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
解决方案
以下面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]
推荐阅读
- python - Python:用整数键解包字典?
- php - 使用 ISPCONFIG 3 时如何删除 .php 扩展名?
- android - 如何在 Cloud Firestore 中保存时间戳值并对其执行查询?
- function - Clojure 究竟如何处理函数定义?
- api - 如何以编程方式检查我在 USCIS 的申请状态?
- c# - OracleCommandBuilder.DeriveParameters() 抛出 OracleException: ORA-06564: 对象不存在
- javascript - ngClass 在 Angular 中与 ngFor 一起使用来切换图标
- android - 使用 Fragment 后更改 Activity 的 Android 错误
- python - 如何在 python/selenium/scraping 中编写这个 if 语句
- javascript - 如何防止 XMLHttpRequest 在连接失败时抛出错误