获取混合索引pandas系列中第一个K值的索引

时间:2017-10-15 17:09:10

标签: python pandas

L&#39>我说我有一个名为z的熊猫系列:

index  items
155    14
2      555
1445   23
855     3

等等。如您所见,索引是混合的。如何在不更改当前索引的情况下获取K前几行的索引列表? 例如,对于K = 3,我想要这样:[155,2,1445]

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以将iloc切片

一起使用
s.iloc[:3].index

或使用head

s.head(3).index
s
#index
#155      14
#2       555
#1445     23
#855       3
#Name: items, dtype: int64

s.iloc[:3].index.values
#array([ 155,    2, 1445], dtype=int64)

s.head(3).index.values
#array([ 155,    2, 1445], dtype=int64)

答案 1 :(得分:0)

如果z是系列,那么只需要:

L = z.index[:3].tolist()

通过评论编辑:

您似乎得到DataFrameindex是列:

print (type(z))
<class 'pandas.core.frame.DataFrame'>

#set index with column index
z = z.set_index('index')
#select values by position and convert to list
L = z.index[:3].tolist()
print (L)
[155, 2, 1445]

如果index是列,则可以选择列,然后按位置Series.iloc获取前N个值:

L = z['index'].iloc[:3].tolist()

最好使用DataFrame.iloc,但get_loc也需要index列的位置:

L = z.iloc[:3, df.columns.get_loc('index')].tolist()