仅对 table 的一部分进行计算

Calculation is done only on part of the table

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

例如,如您所见,我有很多字段(列):

我使用下一个代码计算 skenwess 和峰度:

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


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

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

我尝试执行 head(10) 但它并没有改变某些列消失的事实。

我如何为所有列计算这个值?

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

 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

解决方案是预处理数据。

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