當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas DataFrame std方法用法及代碼示例


Pandas DataFrame.std(~) 方法計算源 DataFrame 的每行或每列的標準差。 (無偏)標準差使用以下公式計算:

其中,

是行或列的大小

是行或列中第 索引的值

是行或列中的值的平均值。

注意

std(~) 還可以計算總體標準差。我們通過設置 ddof=0 來做到這一點。

參數

1.axis | intstring | optional

是否按列或按行計算標準差:

說明

"index"0

計算每列的標準偏差。

"columns"1

計算每行的標準差。

默認情況下,axis=0

2. skipna | boolean | optional

是否跳過 NaN 。跳過的 NaN 不會計入總大小 ( )。默認情況下,skipna=True

3. level | int | optional

要考慮的級別的名稱或整數索引。僅當您的 DataFrame 是多索引時才需要這樣做。

4. ddof | int | optional

自由度δ。這可用於修改分母:

默認情況下,ddof=1

5. numeric_only | Noneboolean | optional

允許的值如下:

說明

True

僅考慮數字行/列(例如 floatintboolean )。

False

嘗試使用所有類型(例如字符串和日期)進行計算,並在無法計算標準差時拋出錯誤。

None

嘗試計算所有類型,並忽略所有無法計算標準差的行/列不會引發錯誤.

請注意,隻有當類型之間明確定義了 + 運算符時,才能計算標準差。

默認情況下,numeric_only=None

返回值

如果指定了level參數,則將返回DataFrame。否則,將返回Series

例子

考慮以下 DataFrame :

df = pd.DataFrame({"A":[3,5,7], "B":[2,5,8]})
df



   A  B
0  3  2
1  5  5
2  7  8

列標準差

要計算每列的標準差:

df.std()   # axis=0



A    2.0
B    3.0
dtype: float64

行方向標準差

計算每行的標準差:

df.std(axis=1)



0    0.707107
1    0.000000
2    0.707107
dtype: float64

指定numeric_only

考慮以下 DataFrame :

df = pd.DataFrame({"A":[3,5], "B":[True,5], "C":["x",6]})
df



   A  B     C
0  3  True  x
1  5  5     6

這裏,列BC是混合類型。

None

默認情況下, numeric_only=None ,這意味著混合類型的行/列也會被考慮:

df.std()   # numeric_only=None



A    1.414214
B    2.828427
dtype: float64

B 列的標準差仍然可計算的原因是,True 在 Pandas 中內部表示為 1。相反,由於 "x"+7 未定義,因此無法計算列 C 的標準差。

False

numeric_only=False表示混合類型的行/列也會被考慮,但如果無法計算標準差,則會引發錯誤:

df.std(numeric_only=False)



TypeError: could not convert string to float: 'x'
True

僅計算數字行/列的標準差:

df.std(numeric_only=True)



A    1.414214
dtype: float64

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | std method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。