首页 > 解决方案 > 拥有索引数组并希望从数据框中获取其行

问题描述

我有一个数据框,如下所示:

In: df.head()

Out:
Index   Country       Gender   Age   
0        USA            M      30   
1        Australia      F      22   
2        China          F      66   
3        Spain          M      88   

我创建了一个数组(my_array),其中的数字对应于我们的 DataFrame 的行索引。数组看起来像:

In:  my_array
Out: array([[3],
            [2],
            [3],
            [0]])

我的问题是我想通过我的数组中的选定索引并以相同的顺序带来或返回行。

如果我的数组有这些索引:3、2、3、0。所以,我想从这些索引中返回行。而且我不想手动操作。

输出应如下所示:

Index   Country       Gender   Age   
3        Spain          M      88   
2        China          F      66   
3        Spain          M      88   
0        USA            M      30 

标签: pythonarrayspandas

解决方案


我想df.iloc[my_array]应该为你做。

我的例子:

In [306]: df                                                                                                                                                                                                
Out[306]: 
   col1  col2 col3
0    75    84    A
1    84    68    B
2    75    84    C
3    75    84    A

In [307]: a = [3,2,3,0]

In [309]: df.iloc[a]                                                                                                                                                                                        
Out[309]: 
   col1  col2 col3
3    75    84    A
2    75    84    C
3    75    84    A
0    75    84    A

推荐阅读