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

Mat*_*att 6 python pandas

只是好奇。

我正在处理一些数据,当我输入时

train.Id.shape
Run Code Online (Sandbox Code Playgroud)

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

但是当我输入

train.shape[0]
Run Code Online (Sandbox Code Playgroud)

python 返回1467- 一个整数

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

piR*_*red 2

train.Id是 pandas 系列并且是一维的。 train是一个 pandas DataFrame 并且是二维的。 shape是 DataFrame 和 Series 都具有的属性。它始终是一个元组。对于 Series 来说,元组只有 value (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,)
Run Code Online (Sandbox Code Playgroud)