如何检查pandas系列是仅仅初始化(即空)还是定义?

时间:2017-02-15 10:56:04

标签: python pandas

我想区分刚刚初始化的pandas系列,以及实际已定义且具有值的pandas系列。我尝试了以下代码,但它不起作用。

import pandas as pd
labels = pd.Series
print len(labels)
print labels.empty

我明白了:

  • TypeError:类型为'type'的对象没有len()
  • 属性对象

然后,我定义了系列:

labels = pd.Series([0, 1, 1]).unique()
print labels.empty
print len(labels)

这次我得到了:

  • 2
  • AttributeError:'numpy.ndarray'对象没有属性'empty'

我如何检查系列是否为空 - 返回是真还是假?

1 个答案:

答案 0 :(得分:1)

在第一个实例中,您引用了方法Series

In [31]:

labels = pd.Series
print(type(labels))
labels = pd.Series
print(type(labels))
<class 'type'>

因此所有的错误,你想要空括号来制作一个空系列:

In [33]:
labels = pd.Series()
print(labels.empty)
print(len(labels))

True
0

在第二个实例中unique返回一个没有方法empty的numpy数组,pandas Series会这样做。

In [38]:
labels = pd.Series([0, 1, 1]).unique()
type(labels)

Out[38]:
numpy.ndarray

您可以使用size属性检查尺寸:

In [42]:
labels = pd.Series([0, 1, 1]).unique()
print(labels.size)

2