我有一个带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],这不是我想要的。)
答案 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