在循环另一个 df 并生成统计信息后创建 df

问题描述

我想生成一个新的 df

for c in df.select_dtypes(include=[np.number]):
  sk = skew(df[c])
  kt = kurtosis(df[c])

如何将此代码段转换为如下所示的数据框:

col_name 偏度 峰度
col_a 0.1 2
col_b 3 0.5

解决方法

为什么不直接使用 pandas.DataFrame.kurtosispandas.DataFrame.skew

示例:

>>> df = pd.DataFrame({'a': ['a','b','c','d','e'],'b': [1,2,3,0],'c': [-1,5,4.6,10.3,11]})
>>> pd.concat([df.skew(),df.kurtosis()],axis=1).reset_index().rename({'index': 'col_name',0: 'skewness',1: 'kurtosis'},axis=1)
  col_name  skewness  kurtosis
0        b -0.404796 -0.177515
1        c -0.487970 -0.620300

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...