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]