0

我正在尝试计算数据的峰度和偏度,并且我设法创建表,但由于某种原因,结果仅适用于少数列,而不适用于整个字段。

例如,如您所见,我有很多字段(列): 在此处输入图像描述

我使用下面的代码计算 skenwess 和峰度:

sk=pd.DataFrame(data.skew())
kr=pd.DataFrame(data.kurtosis())
sk['kr']=kr


sk.rename(columns ={0: 'sk'}, inplace =True)

但随后我得到的结果包含大约一半的数据:

在此处输入图像描述

我试图做 head(10) 但它并没有改变一些列消失的事实。

我怎样才能为所有列计算这个?

4

1 回答 1

1

由于您没有提供原始数据,因此很难重现错误。可能您的数据框在丢失的列中包含非数值,这会导致这种行为。

 dat = {"1": {'lg1':0.12, 'lg2':0.23, 'lg3':0.34, 'lg4':0.45},
"2":{'lg1':0.12, 'lg2':0.23, 'lg3':0.34, 'lg4':0.45}, 
"3":{'lg1':0.12, 'lg2':0.23, 'lg3':0.34, 'lg4':0.45}, 
"4":{'lg1':0.12, 'lg2':0.23, 'lg3':0.34, 'lg4':0.45}, 
"5":{'lg1':0.12, 'lg2':0.23, 'lg3': 'po', 'lg4':0.45}}

 df = pd.DataFrame.from_dict(dat).T

 print(df)
    lg1   lg2   lg3   lg4
 1  0.12  0.23  0.34  0.45
 2  0.12  0.23  0.34  0.45
 3  0.12  0.23  0.34  0.45
 4  0.12  0.23  0.34  0.45
 5  0.12  0.23    po  0.45

 print(df.kurtosis())
 lg1    0
 lg2    0
 lg4    0

解决方案是预处理数据。

一个建议是检查错误的一致性,即总是缺少相同的行?

于 2019-11-25T14:19:38.773 回答