gpt4 book ai didi

python - 按值访问另一列,Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:34 25 4
gpt4 key购买 nike

我有一个数据框如下:

    Type      Name           Category              
Bird Flappy Bird Air
Bird Pigeon Air
Pokemon Jerry Aquatic
Pokemon Mudkip Aquatic
Animal Lion Terrestrial
Bird Pigeon Air2

对于像 "Pigeon" 这样的给定名称,我需要访问类别列中的相应值,即它应该给我字符串 "Air"。< br/>我有 2 个 Pigeon 值,但我需要返回“Air”以进行第二次观察。

请注意,我根本没有使用索引,所以用 iloc 进行第二次观察是行不通的。我需要通过另一列中的 访问它。

或者类似获取 "Pigeon"index使用它 来获取相应的列值会做。

最佳答案

使用loc

举个例子:

df.loc[df.Name == 'Pigeon', 'Category'] 

给你想要的

例子:

In [17]:

import io
import pandas as pd
temp = """Type Name Category
Bird Flappy_Bird Air
Bird Pigeon Air
Pokemon Jerry Aquatic
Pokemon Mudkip Aquatic
Animal Lion Terrestrial"""

df = pd.read_csv(io.StringIO(temp), sep='\s+')
df
Out[17]:
Type Name Category
0 Bird Flappy_Bird Air
1 Bird Pigeon Air
2 Pokemon Jerry Aquatic
3 Pokemon Mudkip Aquatic
4 Animal Lion Terrestrial

[5 rows x 3 columns]
In [19]:

df.loc[df.Name == 'Pigeon','Category']
Out[19]:
1 Air
Name: Category, dtype: object

如果您有多个值并且只想要第一个,那么使用 idxmin :

In [24]:

df.ix[(df.Name == 'Pigeon').idxmin(),'Category']
Out[24]:
'Air'

编辑

因此对于我们有多个值并且您想访问各个值的情况,您可以检查索引值并直接访问它们:

在[23]中:

df.loc[df.Name=='Pigeon','Category'].index.values
Out[23]:
array([1, 5], dtype=int64)
In [26]:

df.loc[df.Name=='Pigeon','Category'][5]
Out[26]:
'Air2'

或者如果你想遍历它们,那么系列有一个 iteritems() 方法:

In [28]:

df.loc[df.Name=='Pigeon','Category'].iteritems()
Out[28]:
[(1, 'Air'), (5, 'Air2')]

这两个都可以满足你的要求

关于python - 按值访问另一列,Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23486083/

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