首页 > 解决方案 > 如何向 describe() 表添加列

问题描述

我有一个数据框,在数据框上使用了 describe(),然后反转了 describe() 表。

现在,我想在这个新的偏度和峰度值表中添加一列。

我想在“max”列的右侧添加一个“Skewness”列和“Kurtosis”列。偏度列将包含每行的所有偏度值。峰度列将具有每行的峰度值。

到目前为止,您看到的是我称为“summary_transpose”的转置 describe() 表

                 count   mean    std   min    25%    50%    75%    max
Unnamed: 0      1000.0  499.5  288.8   0.0  249.8  499.5  749.2  999.0
FINAL_MARGIN    1000.0   -1.2   15.3 -39.0   -8.0   -2.0    8.0   28.0
SHOT_NUMBER     1000.0    6.4    4.7   1.0    3.0    5.0    9.0   23.0
PERIOD          1000.0    2.5    1.1   1.0    2.0    2.0    4.0    6.0
SHOT_CLOCK       979.0   11.8    5.4   0.3    8.0   11.5   15.0   24.0
DRIBBLES        1000.0    1.6    2.9   0.0    0.0    1.0    2.0   23.0
TOUCH_TIME      1000.0    2.9    2.6  -4.3    0.9    2.1    4.2   20.4
SHOT_DIST       1000.0   12.3    7.8   0.1    5.6   10.4   18.5   41.6
PTS_TYPE        1000.0    2.2    0.4   2.0    2.0    2.0    2.0    3.0
CLOSE_DEF_DIST  1000.0    3.6    2.3   0.0    2.1    3.1    4.7   19.8
FGM             1000.0    0.5    0.5   0.0    0.0    0.0    1.0    1.0
PTS             1000.0    1.0    1.1   0.0    0.0    0.0    2.0    3.0

标签: pythonpython-3.xdataframe

解决方案


下面的代码在max列旁边添加了 Skewness 和 Kurtosis 列。

import scipy.stats as stats
summary = round(df.describe(), 1) # rounds each value to 0.1
summary_transpose = summary.T # transposes the original summary table

summary_transpose['Skewness'] = stats.skew(df._get_numeric_data(), nan_policy='omit')
summary_transpose['Kurtosis'] = stats.kurtosis(df._get_numeric_data(), nan_policy='omit')

推荐阅读