Python 如何从表中的列子集中选择行子集

Python 如何从表中的列子集中选择行子集,python,pandas,Python,Pandas,假设这是我的熊猫数据帧 df = pd.DataFrame({'num_legs': [2, 4, 8, 0], 'num_wings': [2, 0, 0, 0], 'num_specimen_seen': [10, 2, 1, 8]}, index=['falcon', 'dog', 'spider', 'fish']) >>> df nu

假设这是我的熊猫数据帧

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
                    'num_wings': [2, 0, 0, 0],
                    'num_specimen_seen': [10, 2, 1, 8]},
                   index=['falcon', 'dog', 'spider', 'fish'])

>>> df
        num_legs  num_specimen_seen  num_wings
falcon         2                 10          2
dog            4                  2          0
spider         8                  1          0
fish           0                  8          0
这些是我需要选择的行
row\u index=[1,3]
。对于单个列,我可以使用这种方式

>>> df.num_wings[row_index]
dog     0
fish    0
但是我想在列的子集中,而不是像这样在整个数据帧中这样做

df[['num_legs','num_wings']][row_index]
它给出了
键错误:“[13]不在索引中”
。如何从数据框中的列子集中选择行子集?

按名称与按列位置一起使用:

如果需要,请将值转换为numpy数组:

#0.24+ 
a = df.to_numpy()[row_index, df.columns.get_indexer(['num_legs','num_wings'])]
#pandas below
a = df.values[row_index, df.columns.get_indexer(['num_legs','num_wings'])]
print (a)
[4 0]
使用
.loc()
iloc()
#0.24+ 
a = df.to_numpy()[row_index, df.columns.get_indexer(['num_legs','num_wings'])]
#pandas below
a = df.values[row_index, df.columns.get_indexer(['num_legs','num_wings'])]
print (a)
[4 0]