2014-07-17 36 views
0

我正在使用熊貓0.13.1。該數據幀:爲什麼DataFrame的統計方法在pandas中返回Series?

a = pandas.DataFrame({"a": ["foo", "bar", "qux"], "v": [1, 5.6, 50.5]}) 
a = a.set_index("a") 

含有漂浮,它們的平均可以用.mean()計算:

>>> a.mean() 
v 19.033333 
dtype: float64 
>>> type(a.mean()) 
pandas.core.series.Series 
然而

在大熊貓0.13.1,這個結果是Series而不是float - 這是爲什麼?熊貓這是新的嗎? IIRC在大熊貓中並不是這樣。

這是獲得浮動的正確方法嗎?

>>> a.mean()[0] 
+0

這是一個問題嗎?它仍然在0.14.0,也可能是0.14.1。 – EdChum

+0

@EdChum:我想用「mean()」作爲下游算術運算,所以我想要一個浮點數或整數或者其他有意義的值。系列對此沒有意義。那麼我使用''[0]''符號? – user248237dfsf

+0

如果你喜歡 – EdChum

回答

1

如果您有多列,則df.mean()系列包含每列的值。因此,a.mean()['v'](獲得平均值系列的'v'值)或a['v'].mean()(採用系列'v'的平均值)將是表達你正在做的最明確的方式。

如果您想將數據視爲單個向量/數組(即強制數據只有一列的任何構造),則表示該數據的首選方式是作爲一個Series。

另外,如果你在所有列想要的意思,你可以這樣做:

  • df.mean().mean()(以每列的平均值,然後給的,平均)
  • df.mean(axis=0).mean()(取平均值每一行,然後給的是,平均)
  • df.as_matrix().mean()(取整矩陣[由大熊貓作爲numpy的矩陣返回/ 2D陣列])
  • df.values.mean()(同上,的平均值可能更快,但是是一個不太清楚[i熊貓作爲一個numpy數組的內部表示]
相關問題