gpt4 book ai didi

python - Pandas 应用 key 错误

转载 作者:IT老高 更新时间:2023-10-28 20:55:13 26 4
gpt4 key购买 nike

我对 Python 和数据科学还很陌生。我正在参加 kaggle Outbrain 比赛,我的代码中引用的所有数据集都可以在 https://www.kaggle.com/c/outbrain-click-prediction/data 找到.

关于问题:我有一个包含 ['document_id', 'category_id', 'confidence_level'] 列的数据框。我想添加第四列 'max_cat',它返回对应于最大 'confidence_level' 值的 'category_id' 值对于该行的 'document_id'

import pandas as pd
import numpy

main_folder = r'...filepath\data_location' + '\\'

docs_meta = pd.read_csv(main_folder + 'documents_meta.csv\documents_meta.csv',nrows=1000)
docs_categories = pd.read_csv(main_folder + 'documents_categories.csv\documents_categories.csv',nrows=1000)
docs_entities = pd.read_csv(main_folder + 'documents_entities.csv\documents_entities.csv',nrows=1000)
docs_topics = pd.read_csv(main_folder + 'documents_topics.csv\documents_topics.csv',nrows=1000)

def find_max(row,the_df,groupby_col,value_col,target_col):
return the_df[the_df[groupby_col]==row[groupby_col]].loc[the_df[value_col].idxmax()][target_col]

test = docs_categories.copy()
test['max_cat'] = test.apply(lambda x: find_max(x,test,'document_id','confidence_level','category_id'))

这给了我错误:KeyError: ('document_id', 'occured at index document_id')

谁能帮助解释为什么会发生这个错误,或者如何以更有效的方式实现我的目标?

谢谢!

最佳答案

正如 EdChum 在 comments 中的回答.问题是 apply 默认按列工作(参见 docs )。因此,无法访问列名。

要指定它应该应用于每一行,必须传递 axis=1:

test.apply(lambda x: find_max(x,test,'document_id','confidence_level','category_id'), axis=1)

关于python - Pandas 应用 key 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960728/

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