2016-12-01 3 views
2

ちょうど好奇心。なぜdataframe.shape [0]は整数を出力しますが、dataframe.columnname.shapeはタプルを出力します

私は私が働いているいくつかのデータを持っている、と私は入力

train.Id.shape 

のpythonは(1467,)を返したとき - タプル

が、ときに私が入力

train.shape[0] 

のpythonは1467を返されました - 整数

好奇心旺盛dasはこれらの2つの異なる入力を処理し、なぜそれらが異なるのですか。 これは特定の機能ですか、それともちょっと変わった機能ですか?

答えて

1

train.Idはパンダシリーズで一次元です。 trainはパンダのDataFrameであり、2次元です。 shapeは、DataFramesとSeriesの両方の属性です。それは常にタプルです。あるシリーズのタプルの値は(x,)です。 DataFrameシェイプの場合、2つの値(x, y)を持つタプルです。したがってtrain.Id.shape[0]1467を返します。しかし、train.Id.shape[1]はエラーを生成し、train.shape[1]trainの列数を示します。それはタプル(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,) 
+1

感謝を返すため

さらに、パンダのパネルオブジェクトは三次元とshapeをしています! – Matt

+0

@Matt大歓迎です – piRSquared