在熊猫中找到缺失值(不是NaN)

时间:2020-10-10 14:06:45

标签: python pandas series missing-data

我有一个按升序排列的熊猫系列。其值类似于1,2,3,...,73514,73515,73516。但是列数是73515。

我需要找到缺少的值。如何找到?

5 个答案:

答案 0 :(得分:1)

假设列名称的类型为int,您也可以使用python集:

set(range(1,73516)).difference(set(df.columns))

set(range(1,73516)) - set(df.columns)

答案 1 :(得分:0)

如果该值为数字,则可以尝试:

a=input("Enter your name:")

import datetime
currentTime = datetime.datetime.now()
currentTime.hour

if currentTime.hour < 12:
    print('Good morning',a)
elif 12 <= currentTime.hour < 18:
    print('Good afternoon',a)
else:
    print('Good evening',a)

[write this without using python,click this link provided below to write]

如果值是字符串:

df[df['col1'] == 0]

答案 2 :(得分:0)

假设我正确理解了你

for i in range(1,73517):
    i if i not in series.to_list() else print('',end='')

它应该打印搜索到的值。

答案 3 :(得分:0)

您可以使用二进制搜索算法,以将缺少的值返回给您。请检查此解决方案,然后使其适应使用熊猫: https://www.geeksforgeeks.org/find-missing-element-in-a-sorted-array-of-consecutive-numbers/

这是最有效的解决方案。与其他解决方案相比,O(logN)的执行速度要快得多,在其他解决方案中,您必须迭代从1到Series中最后一个元素的所有值的范围,并检查每个值是否在Series中,之所以使用O(N 2 ),是因为迭代和 in 都采用O(N)。

祝你有美好的一天!

答案 4 :(得分:0)

假设您的意思是您的列表范围在1到73515之间,并且需要查找此列表中是否缺少任何值。

一种执行此操作的方法是制作一个具有所有期望值的列表 例如 预期=范围(1,73515)

然后您可以将期望值与列表进行比较

missing_values = []
for num in expected:
    if num not in original_list:
        missing_values.append(num)

或在列表理解中执行相同的操作:

missing_values_comprehension = [num for num in expected if num not in original_list]

很显然,您确实提到过您拥有系列中的值。 您可以根据需要直接迭代这些值,也可以先将它们转换为列表。