繁体   English   中英

尝试在python中复制描述性统计分析工具excel/将模式添加到describe()函数

[英]Trying to replicate descriptive statistics analysis tools excel in python / add mode to describe() function

我试图通过在 Pandas 库中聚合一些可用的描述性统计数据来使用 python(jupyter notebook)在 excel 中复制描述性统计(汇总统计)分析工具,但每次我在代码中添加模式函数时,它总是返回:

ValueError:无法组合转换和聚合操作

我的代码是:

df2 = df[["pm10","so2", "co", "o3", "no2" ]]
df2.agg(
    {
        "pm10": ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", "mode"],
        "so2": ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", "mode"],
        "co": ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", "mode"],
        "o3": ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", "mode"],
        "no2": ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", "mode"]
    }
  )

它只在包含模式功能时返回错误,其他功能运行良好。 这是我的数据集

我想要的结果: 我想要聚合模式

尝试使用统计包中的模式函数:

from statistics import mode
func_list = ["mean", "sem", "median", "std", "var", "kurt", "skew", "min", "max", "sum", "count", mode]
df2.agg(
{
    "pm10": func_list,
    "so2": func_list,
    "co": func_list,
    "o3": func_list,
    "no2": func_list
})

这不是最干净的方法,但它有效,我还添加了一些其他措施,如 nans 值和范围

df2 = df[["pm10","so2", "co", "o3", "no2" ]]      
                                                  
def describe(df2, stats):
    d = df2.describe()
    return d.append(df2.reindex(d.columns, axis = 1).agg(stats))

df2_desc = describe(df2, ["median", "var", "sem", "kurt", "skew", "sum",])

count_nan = df2.isnull().sum(axis=0) 
df2_append = df2_desc.append(pd.Series(count_nan, name='nans'))

df_mode = df2.mode(axis=0, numeric_only=True, dropna=True)
df2_concat = pd.concat([df2_append, df_mode])                             
df2_concat.loc['range'] = df2_concat.loc['max'] - df2_concat.loc['min']
df2_concat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM