好奇。
我有一些我正在使用的数据,当我输入
时train.Id.shape
python返回(1467,)
- 一个元组
但是当我输入
时train.shape[0]
python返回1467
- 一个整数
好奇Pandas如何处理这两种不同的输入,以及它们为何不同。 这是一个特定的功能,还是只是一个怪癖?
答案 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,)