[英]Getting mean, max, min from pandas dataframe
我有以下数据框,它是执行标准熊猫关联的结果:
df.corr()
abc xyz jkl
abc 1 0.2 -0.01
xyz -0.34 1 0.23
jkl 0.5 0.4 1
我需要做一些与这些相关的事情,但是这些计算需要排除所有值为1的单元格。1个值是项目与自身具有完美相关性的单元格,因此我不感兴趣在里面。:
确定最大相关对。 结果是“ jkl”和“ abc”,它们的相关系数为0.5
确定最小相关对。 结果是“ abc”和“ xyz”,它们具有-0.34的相关性
确定整个数据帧的平均值/平均值(同样,这需要排除所有为1的值)。 结果将是(0.2 + -0.01 + -0.34 + 0.23 + 0.5 + 0.4)/ 6 = 0,163333333
检查一下:
from numpy import unravel_index,fill_diagonal,nanargmax,nanargmin
from bottleneck import nanmean
a = df(columns=['abc','xyz', 'jkl'])
a.loc['abc'] = [1, 0.2 , -0.01]
a.loc['xyz'] = [-0.34, 1, 0.23]
a.loc['jkl'] = [0.5, 0.4, 1]
b = a.values.copy()
fill_diagonal(b, None)
imax = unravel_index(nanargmax(b), b.shape)
imin = unravel_index(nanargmin(b), b.shape)
print(a.index[imax[0]],a.columns[imax[1]])
print(a.index[imin[0]],a.columns[imin[1]])
print(nanmean(b))
请不要忘记复制数据,否则np.fill_diagonal将删除其对角线值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.