我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

话说苏南大叔在描述dataframe.describe()方法的时候,发现返回值里面只有总体标准差std,而没有总体方差var的数据。所以,苏南大叔试图对.describe()这个返回值进行修改,以期待获得一个满意的值。

苏南大叔:以鸢尾花数据集为例,计算方差并修改describe方法返回值? - describe返回值加入方差数据
以鸢尾花数据集为例,计算方差并修改describe方法返回值?(图3-1)

苏南大叔的“程序如此灵动”,这里记录苏南大叔的代码所学所想。测试环境:win10python@3.11.0numpy@1.24.2pandas@1.5.3

理论准备

本文的需求,相关的文章比较多,这里就列出几个密切相关的文章吧。

下面的代码中,先引入本文的主角,鸢尾花数据集的.describe()结果。

import pandas as pd

data_url = "http://download.tensorflow.org/data/iris_training.csv"
column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"]
df = pd.read_csv(data_url, header=0, names=column_names)
df_desc = df.describe()

计算总体方差var

计算的方法很多,这里直接使用df对象的.var()方法,进行再加工。最终获得一个转置过的dataframe。当然,也可以利用std进行乘方计算。

苏南大叔:以鸢尾花数据集为例,计算方差并修改describe方法返回值? - 不同方案
以鸢尾花数据集为例,计算方差并修改describe方法返回值?(图3-2)

方案一

df_vars = df.var().to_frame()
df_vars = pd.DataFrame(df_vars.values.T, columns=df_vars.index, index=["var"])

方案二

df_vars = pow(df_desc.loc['std'],2).to_frame()
df_vars = pd.DataFrame(df_vars.values.T, columns=df_vars.index, index=["var"])

方案三

_list = []
for c in column_names:
    _list.append(df[c].var())
df_vars = pd.DataFrame([_list], index=["var"], columns=tuple(column_names))

插入目标位置

目标是把var的结果放到std后面,这里也有非常多的方案做到这一点,这里选择一个苏南大叔比较喜欢的方案。

df_desc_new = pd.concat([df_desc.loc[:'std'], df_vars, df_desc.loc['min':]], axis=0)
print(df_desc_new)

苏南大叔:以鸢尾花数据集为例,计算方差并修改describe方法返回值? - 运算结果
以鸢尾花数据集为例,计算方差并修改describe方法返回值?(图3-3)

结束语

本次的python文章经验更新,饶了太大的弯儿。本来是准备更新使用各种机器学习手段分析鸢尾花数据集的。结果,更新成了dataframe的各种不同角度的分析了。哈哈。希望尽快回归正题。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python