仅对 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
解决方案是预处理数据。
一个建议是检查错误的一致性,即是否总是缺少相同的行?
我正在尝试计算数据的峰度和偏度,我设法创建了 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
解决方案是预处理数据。
一个建议是检查错误的一致性,即是否总是缺少相同的行?