如何将scipy.stats.description输出加载到pandas数据帧中



是否有一种简单直接的方法将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'})

您可以将_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 

最新更新