如何将scipy.stats.describe输出加载到熊猫数据框?

时间:2020-02-22 09:37:22

标签: python pandas scipy

是否有一种简单明了的方法将sp.stats.describe()的输出加载到DataFrame中,包括值名称?它似乎不是字典格式或其他相关内容。当然,我可以手动附加相关的列名(请参阅下文),但是想知道是否可以直接将具有命名列的数据加载到DataFrame中。

import pandas as pd
import scipy as sp

data = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [1, 2, 3, 4, 5]})

sp.stats.describe(data['a'])

pd.DataFrame(a)

pd.DataFrame(a).transpose().rename(columns={0: 'N', 1: 'Min,Max',
                                            2: 'Mean', 3: 'Var',
                                            4: 'Skewness',
                                            5: 'Kurtosis'})

1 个答案:

答案 0 :(得分:1)

您可以使用_fields来命名命名元组中的列名称:

a = sp.stats.describe(data['a'])
df = pd.DataFrame([a], columns=a._fields)
print (df)
   nobs  minmax  mean  variance  skewness  kurtosis
0     5  (1, 5)   3.0       2.5       0.0      -1.3

也可以通过_asdict从命名元组创建字典:

d = sp.stats.describe(data['a'])._asdict()
df = pd.DataFrame([d], columns=d.keys())
print (df)
   nobs  minmax  mean  variance  skewness  kurtosis
0     5  (1, 5)   3.0       2.5       0.0      -1.3