如何从数据框中检索行名和列名?

时间:2016-11-29 23:29:29

标签: python pandas dataframe

我使用pandas.corr从数据框生成了一个相关矩阵:

cmat = sub1.corr()

cmat
Out[75]: 
          CESI001   CESI002   CESI003   CESI004
CESI001  1.000000  0.829723  0.046925  0.074475
CESI002  0.829723  1.000000  0.066766  0.073181
CESI003  0.046925  0.066766  1.000000 -0.098427
CESI004  0.074475  0.073181 -0.098427  1.000000

我尝试做的是生成一个由[行,列,值]组成的新数据框,其中单元格值符合某些条件。我成功地检索了匹配的单元格值:

for i2,r2 in cmat.iterrows():
for item in cmat[i2]:
    if ((item > 0.3) and (item < 0.9)):
        print (item)

这正确地产生:

0.829723365019
0.829723365019

但是,我无法从那里向后工作以检索行名和列名。我已经尝试了.loc,.columname以及我在这里阅读的其他几种方法。我得到的Python更多的是关于整个数据框架的操作。任何指导意见。

1 个答案:

答案 0 :(得分:2)

  • stack排列行和列
  • query来过滤您需要的内容
cmat.stack().to_frame('item').query('.3 < item < .9')

enter image description here