在Pandas中,如何获得满足某些属性的条目的系列/数据框索引列表?
以下返回一个Series对象
my_dataframe.loc[:,'some_column'] == 'some_value'
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
519 True
509 False
826 False
503 False
511 False
512 False
500 False
507 False
516 True
504 False
521 False
510 False
351 False
522 False
526 False
517 False
501 False
Run Code Online (Sandbox Code Playgroud)
但我想要的是两个列表,一个列表
[519, 516]
Run Code Online (Sandbox Code Playgroud)
和其他指数一个.我怎么能在熊猫中做到这一点?
Jef*_*eff 13
In [8]: df = DataFrame(randn(10,2),columns=list('AB'))
In [9]: df
Out[9]:
A B
0 -1.046978 1.561624
1 -0.264645 0.717171
2 0.112354 -2.084449
3 -1.243482 -1.183749
4 1.055667 0.532444
5 -1.295805 2.168225
6 -1.239725 0.969934
7 -0.354017 1.434943
8 -0.867560 0.810315
9 0.097698 -0.033039
In [10]: df.loc[:,'B'] > 0
Out[10]:
0 True
1 True
2 False
3 False
4 True
5 True
6 True
7 True
8 True
9 False
Name: B, dtype: bool
In [14]: x = df.loc[:,'B'] > 0
Per Tom/Andy, much simpler
In [33]: x[x].index
Out[33]: Int64Index([0, 1, 4, 5, 6, 7, 8], dtype=int64)
In [34]: x[~x].index
Out[34]: Int64Index([2, 3, 9], dtype=int64)
Run Code Online (Sandbox Code Playgroud)
@Jeff 示例的一个细微变化:
In [18]: df
Out[18]:
A B
0 0.319489 1.012319
1 0.494205 -0.918240
2 1.501922 -0.409661
3 -1.593702 0.705407
4 -0.735312 1.037567
5 -0.201132 -0.673124
6 1.237310 -0.877043
7 -0.946714 0.984164
8 -0.923548 0.415094
9 0.135281 -0.199951
In [14] list1 = df.index[df.loc[:, 'B'] > 0]
In [15]: list1
Out[15]: Int64Index([0, 3, 4, 7, 8], dtype=int64)
In [16]: list2 = df.index - list1
In [17]: list2
Out[17]: Int64Index([1, 2, 5, 6, 9], dtype=int64)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9778 次 |
| 最近记录: |