【发布时间】:2017-05-04 04:38:09
【问题描述】:
假设一个简单的数据框,例如
A B
0 1 0.810743
1 2 0.595866
2 3 0.154888
3 4 0.472721
4 5 0.894525
5 6 0.978174
6 7 0.859449
7 8 0.541247
8 9 0.232302
9 10 0.276566
在给定条件的情况下,如何检索行的索引值?
例如:
dfb = df[df['A']==5].index.values.astype(int)
返回[4],但我想得到的只是4。这在后面的代码中给我带来了麻烦。
根据某些条件,我希望记录满足该条件的索引,然后选择其中的行。
我试过了
dfb = df[df['A']==5].index.values.astype(int)
dfbb = df[df['A']==8].index.values.astype(int)
df.loc[dfb:dfbb,'B']
想要的输出
A B
4 5 0.894525
5 6 0.978174
6 7 0.859449
但我得到TypeError: '[4]' is an invalid key
【问题讨论】:
-
df.query和pd.eval似乎很适合这个用例。有关pd.eval()系列函数、它们的特性和用例的信息,请访问Dynamic Expression Evaluation in pandas using pd.eval()。