gpt4 book ai didi

python - 如何从 Pandas 数据框中获取特定行)?

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:30 26 4
gpt4 key购买 nike

我正在尝试通读 pandas 文档,但我似乎无法找出解决我的问题的最佳方法。我有一个名为 awards 的 Pandas 数据框。

dataframe 的每一行代表一个奖项,每个奖项都有一个 ID。我想从具有特定 ID 的数据框中提取一个奖项,并使用其中的一些值进行比较。请参阅下面的代码片段。

我试过用这个:

possible_awards = awards.loc[[awards['id'] ==  r_a['award_id']]]

但我认为这不是最好的方法。一方面,我认为(?)它应该给我返回一个数组或另一个数据框,而我真的知道只有一个奖项具有该 ID。其次,我不知道如何迭代返回的内容。

我希望能够访问该特定行的数据框列,如下所示:

if possible_award['institution_id'] == award['institution_id'] and possible_award['department'] == award['department']:

但是,当我遍历任何对象“possible_awards”时,我似乎无法做到这一点。我收到以下错误:“字符串索引必须是整数”

def foo(researcher, award, researchers_and_awards, awards):
for r_a in researchers_and_awards:
if r_a['researcher_id'] == researcher['id']:
possible_awards = awards.loc[[awards['id'] == r_a['award_id']]]
for index, possible_award in possible_awards:
if possible_award['institution_id'] == award['institution_id'] and possible_award['department'] == award['department']:
return True
if possible_award['institution_id'] != award['institution_id'] and possible_award['competition_year'] != award['competition_year']:
return True
return False

我想找到一种简洁明了的方法来做到这一点。任何帮助表示赞赏!让我知道是否需要更多解释。

最佳答案

你可以使用:

possible_awards = awards[awards['id']==r_a['award_id']]

然后像下面这样迭代:

for idx,row in possible_awards.iterrows():
# do whatever you want on this line with `row`

关于python - 如何从 Pandas 数据框中获取特定行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53974808/

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