关于 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 中删除和替换特定行?
感谢帮助