gpt4 book ai didi

python - 如何从 pandas 的列子集中选择行子集

转载 作者:行者123 更新时间:2023-12-01 07:48:57 24 4
gpt4 key购买 nike

考虑这是我的 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
num_legs num_specimen_seen num_wings
falcon 2 10 2
dog 4 2 0
spider 8 1 0
fish 0 8 0

这些是我需要选择的行row_index=[1,3]。对于单列我可以使用这种方式

>>> df.num_wings[row_index]
dog 0
fish 0

但我想在列的子集中执行此操作,而不是像这样的整个数据框

df[['num_legs','num_wings']][row_index]

给出KeyError:'[1 3]不在索引中'。我们如何从 pandas 数据框中的列子集中选择行子集?

最佳答案

使用DataFrame.iloc位置按列按名称 Index.get_indexer :

a = df.iloc[row_index, df.columns.get_indexer(['num_legs','num_wings'])]
print (a)
num_legs num_wings
dog 4 0
fish 0 0

如果需要花哨的索引将值转换为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]

关于python - 如何从 pandas 的列子集中选择行子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56322481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com