当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame var方法用法及代码示例


Pandas DataFrame.var(~) 方法计算源 DataFrame 的每行或每列的方差。 (无偏)方差使用以下公式计算:

其中,

是行或列的大小

是行或列中第 索引的值

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

注意

var(~) 方法还可以计算总体方差。我们通过设置 ddof=0 来做到这一点。

参数

1.axis | intstring | optional

是否按列或按行计算方差:

说明

"index"0

计算每列的方差。

"columns"1

计算每行的方差。

默认情况下,axis=0

2. skipna | boolean | optional

是否跳过 NaN 。跳过的 NaN 不会计入总大小 ( )。默认情况下,skipna=True

3. level | stringint | 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.var()   # axis=0



A    4.0
B    9.0
dtype: float64

行方向方差

计算每行的方差:

df.var(axis=1)



0    0.5
1    0.0
2    0.5
dtype: float64

指定numeric_only

考虑以下 DataFrame :

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



   A  B     C
0  3  True  x
1  5  5     7

这里,列BC是混合类型。

None

默认情况下, numeric_only=None ,这意味着混合类型的行/列也会被考虑:

df.var()   # numeric_only=None



A    2.0
B    8.0
dtype: float64

B 列的方差仍然可计算的原因是,True 在 Pandas 中内部表示为 1。相反,由于 "x"+7 未定义,因此无法计算列 C 的方差。

False

numeric_only=False表示混合类型的行/列也会被考虑,但如果方差不可计算,则会引发错误:

df.var(numeric_only=False)



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

仅计算数字行/列的方差:

df.var(numeric_only=True)



A    2.0
dtype: float64

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | var method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。