使用pandas绘制非现有数字

时间:2016-02-20 23:09:43

标签: python-2.7 pandas matplotlib

我有一个大熊猫系列,其中包含从0到1,000,000的唯一数字。该系列不完整,但在此范围内缺少一些数字。我想大致了解哪些数字缺失,所以我认为我应该将数据绘制成一条带有显示缺失数据的间隙的线。

我将如何实现这一目标?这不起作用:

nums = pd.Series(myNumbers)
nums.plot()

2 个答案:

答案 0 :(得分:1)

以下提供了系列nums中缺失数字的列表。然后,您可以根据需要绘制它们。出于您的目的,请将max调整为1E6。

max = 10   # highest number to look for in the Series
import pandas as pd
nums = pd.Series([1, 2, 3, 4, 5, 6, 9])
missing = [n for n in xrange(int(max + 1)) if n not in nums.values]
print missing

# prints: [0, 7, 8, 10]

我认为您编写的绘图功能有两个问题。首先,有一百万个数字。其次,绘图的x轴将是系列中的索引(从0开始,顺序排列); y轴将是您关心的数字(此处代码中为nums.values)。因此,您正在寻找缺少的y轴值。

答案 1 :(得分:-1)

我认为这取决于你失踪的意思。如果那些是nans,那么你可以做类似的事情

len(nums[nums.apply(numpy.isnan)])

如果您要查找系列中0-1M之间不存在的数字,请执行类似

的操作
a= set([i for i in xrange(int(1e6))])
b= set(nums.values)
print len(a-b) # or plot it as scatter.