从pandas数据帧中获取mean,max,min

时间:2015-06-12 08:56:41

标签: python pandas

我有以下数据帧,这是执行标准pandas关联的结果:

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

1 个答案:

答案 0 :(得分:1)

检查一下:

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将删除其对角线值。