获取 pandas 数据框的名称错误

问题描述 投票:0回答:1

我的 df1 包含“col”列,df2 包含“code”和“id”列。 df1 中的列“col”映射到 df2 中的“code”列。当我运行以下代码时:

def get_id_for_code(code):
    try:
        return df2.loc[df2['code'] == code, 'id'].iloc[0]
    except IndexError:
        return None

for index, row in df.iterrows():
    result['resultId'] = get_id_for_code(row['col'])

错误抛出为:

return df2.loc[df2['code'] == code, 'id'].iloc[0]
NameError: name 'df2' is not defined

有人可以帮忙解决这个问题吗?

注意:数据帧是动态生成的。它们规模庞大,属于公司内部。数据框示例:

示例数据帧

import pandas as pd
df2 = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'code': ['A1', 'B2', 'C3', 'D4']
})
    
df1 = pd.DataFrame({
    'project': [1, 2, 3, 5, 7]
})

提前致谢。

python-3.x pandas dataframe
1个回答
0
投票

IIUC用途:

df['resultId'] = df['col'].map(df2.drop_duplicates('code').set_index('code')['id'])
© www.soinside.com 2019 - 2024. All rights reserved.