熊猫用字典中的新行替换

时间:2021-01-20 10:01:27

标签: python pandas dataframe

关于 DF 处理改进的问题。我目前通过 3 个主要操作操作 DF:插入、修改和删除。为此,我创建了几个函数:

def insert_row(self, df: DataFrame, row: Dict) -> None:
    return df.append(row, ignore_index=True)


def replace_row(self, df: DataFrame, row: Dict) -> None:
    df = self.remove_row(df, row)
    return self.insert_row(df, row)


def remove_row(self, df: DataFrame, row: Dict, column_name: str = 'id') -> None:
    for index in self.get_row_index_by_id(df, column_name, row[column_name]):
        df = df.drop(index)
    return df


def get_row_index_by_id(self, df: DataFrame, column_name: str,
                        value: Union[int, str, bool]) -> RangeIndex:
    return df.index[df[column_name] == value]

insert_row 只需向 DF 插入一个新行(从字典中)

replace_row 通过 id 列值获取行索引并删除所有具有此类 ID 的行并从字典中插入一个新行

remove_row 根据 id 列值获取行索引并删除所有具有此类 ID 的行

但是我遇到了一个问题,即获取索引并在此之后删除行需要很多时间,所以也许有更好的实现如何从 DF 中删除和替换特定行?

感谢帮助

0 个答案:

没有答案