我正在参加 kaggle Outbrain 竞赛,我的代码中引用的所有数据集都可以在以下位置找到:https://www.kaggle.com/c/outbrain-click-prediction/data https://www.kaggle.com/c/outbrain-click-prediction/data.
关于问题:我有一个包含列的数据框['document_id', 'category_id', 'confidence_level']
。我想添加第四列,'max_cat'
,这会返回'category_id'
对应最大的值'confidence_level'
该行的值'document_id'
.
import pandas as pd
main_folder = r'...filepath\data_location' + '\\'
test = pd.read_csv(main_folder + 'documents_categories.csv\documents_categories.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['max_cat'] = test.apply(lambda x: find_max(x,test,'document_id','confidence_level','category_id'))
这给了我错误:
KeyError: ('document_id', 'occurred at index document_id')
任何人都可以帮助解释为什么会发生此错误,或者如何以更有效的方式实现我的目标?