为什么dataframe.shape [0]打印一个整数,但dataframe.columnname.shape打印一个元组

时间:2016-12-01 03:38:23

标签: python pandas

好奇。

我有一些我正在使用的数据,当我输入

train.Id.shape

python返回(1467,) - 一个元组

但是当我输入

train.shape[0]

python返回1467 - 一个整数

好奇Pandas如何处理这两种不同的输入,以及它们为何不同。 这是一个特定的功能,还是只是一个怪癖?

1 个答案:

答案 0 :(得分:1)

train.Id是一只熊猫系列,是一维的。 train是一个pandas DataFrame,是二维的。 shape是DataFrames和Series都具有的属性。它始终是一个元组。对于一个系列,元组只有值(x,)。对于DataFrame形状,是一个具有两个值(x, y)的元组。因此train.Id.shape[0]也会返回1467。但是,train.Id.shape[1]会产生错误,而train.shape[1]会为您提供train中的列数。

此外,pandas Panel对象是三维的,而shape则返回一个元组(x, y, z)

train = pd.DataFrame(dict(Id=np.arange(1437), A=np.arange(1437)))

print(train.shape)
print(train.Id.shape)

(1437, 2)
(1437,)