我有一个按升序排列的熊猫系列。其值类似于1,2,3,...,73514,73515,73516。但是列数是73515。
我需要找到缺少的值。如何找到?
答案 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]
很显然,您确实提到过您拥有系列中的值。 您可以根据需要直接迭代这些值,也可以先将它们转换为列表。