如何有效地用新行或新值更新数据帧?

2024-09-27 00:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用这个缓慢的代码来更新数据帧(从CSV读取并写回),方法是填充现有索引的列,或者如果找不到,则完全添加新行

cs是一个数组,它包含的索引ID可能已经在数据帧中,也可能不在数据帧中

meta_df是要更新的数据帧。 new_fill()检查行中的值是否与给定c的预期值相同

for c in cs:
    row = None
    if c in meta_df.index:
        mrow = meta_df.loc[c]
        if not mrow.isnull().values.any(): 
            continue
        row = get_ideal_row(c)
        if not new_fill(mrow, row): # is current row as expected?
            continue
    else:
        row = get_ideal_row(c)
    meta_df = db.add2DF(meta_df, row) #re-creates dataframe with new row

def new_fill(mrow,  row):
    mrow_dict = mrow.to_dict()
    for key, val in mrow_dict.items():
        if pandas.isnull(val):
            new_val = row[key]
            if new_val:
                return True
    return False

如何实现同样的产出,但更有效?用add2DF()摆脱循环和数据帧的重新创建


Tags: 数据indfnewforifnotval

热门问题