python - Pandas:有没有办法比较两个系列并找到一个系列中最近的元素,而不是另一个系列?
问题描述
我想知道是否有办法知道 B 系列中存在但 A 系列中没有的数字。
Series A:
[2,3,4,6,7]
Series B:
[4,5,6,7,8,9]
Output Expected:
[5,8,9]
解决方案
您可以使用pd.Series.isin
布尔索引:
A = pd.Series([2,3,4,6,7])
B = pd.Series([4,5,6,7,8,9])
res = B[~B.isin(A)].values
array([5, 8, 9], dtype=int64)
或 NumPy 变体:
res = B.values[~np.isin(B.values, A.values)]
您还可以使用set.difference
:
res = list(set(B) - set(A))
[8, 9, 5]
但是请注意,使用 Pandas / NumPy 的内置插件通常不是最佳选择。
推荐阅读
- mysql - Laravel中的表迁移错误,用于向表中添加列
- mysql - 根据浏览量优化上周热门标题的查询性能
- javascript - 不知道如何破译这个方法签名
- python - 在 Python 中实现 Euler Tour
- sql - 根据条件从列中提取子字符串
- python - 在 django 视图/全局对象之间共享对象
- excel - 使用 vba 修剪值时类型不匹配(错误 13)
- spring - JavaMail 仅在从 webapp 调用时才响应
- python - 将 pandas.DataFrame 附加到另一个 pandas.DataFrame 的一列
- python - 在 python 中为用户定义的函数传递一个数组