如何在python pandas中获取行位置而不是行名?

时间:2016-05-12 15:49:50

标签: python pandas

我有一个带rowname的数据框,我想在给定条件后选择行然后,我想得到行位置而不是行名,我该怎么做?

例如:我生成了myDf数据集,我想选择项目的哪个,哪个列A> 0,并返回行的位置而不是行名称。

我想要的输出是:[0,1,2]而不是[1,2,2]

# Generate the dataset
np.random.seed(1)
rowname = [1,2,2,2,4,4]
myDf = pd.DataFrame(np.random.randn(6,4), index=rowname, columns=list('ABCD'))
print myDf
>>>
          A         B         C         D
 1  1.624345 -0.611756 -0.528172 -1.072969
 2  0.865408 -2.301539  1.744812 -0.761207
 2  0.319039 -0.249370  1.462108 -2.060141
 2 -0.322417 -0.384054  1.133769 -1.099891
 4 -0.172428 -0.877858  0.042214  0.582815
 4 -1.100619  1.144724  0.901591  0.502494

(如果我使用代码myDf[myDf.A>0].index,我会得到[1,2,2],这不是我想要的。)

1 个答案:

答案 0 :(得分:2)

它有点难看,但是:

myDf.reset_index(drop=True)[myDf.reset_index()["A"]>0]
Out[93]: 
          A         B         C         D
0  1.624345 -0.611756 -0.528172 -1.072969
1  0.865408 -2.301539  1.744812 -0.761207
2  0.319039 -0.249370  1.462108 -2.060141