Pandas Dataframe 使用 apply() 追加新行

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

我正在尝试根据数据库中现有行的条件添加新行。因此,对于每一行和我的条件,我可以附加几个新行。我不知道该怎么做。通常,如果我需要将逻辑应用到数据框,我会使用应用。但是因为这只返回 vhange 整个数据框,我不知道该怎么做。谢谢!

def target_add(row):
    target = resource_list_for_add[resource_list_for_add['Procedure Number'] == row['Procedure Number']]['Resource ID'].unique()
    resource_used = logic_baseline[logic_baseline['Card ID'] == row['Card ID']]['Resource ID'].unique()
    target_add = list(set(target) - set(resource_used))
    for i in target_add:
        resource = resource_list_for_add[(resource_list_for_add['Resource ID'] == i) & (resource_list_for_add['Procedure Number'] == row['Procedure Number'])]
        add_resource = {'Card ID': row['Card ID'], 
                        'Provider': row['Provider'], 'Provider ID': row['Provider ID'], 
                        'Procedure Name': row['Procedure Name'], 'Procedure Number': row['Procedure Number'], 
                        'Count of Procedures': row['Count of Procedures'], 
                        'Location': row['Location'], 'Location ID': row['Location ID'], 
                        'Resource Name': resource['Resource Name'], 'Resource ID': resource['Resource ID'], 
                        'Cost Per Unit': resource['Cost Per Unit'], 
                        'Percent Used among Peers': resource['Percent Used among Peers'], 
                        'Logic Suggestion': 'ADD'}
        logic_baseline.append(add_resource, ignore_index = True)
    return logic_baseline

logic_baseline = logic_baseline.apply(target_add, axis=1)

此代码无限运行。

pandas dataframe apply
© www.soinside.com 2019 - 2024. All rights reserved.