Skip to content

Commit

Permalink
Add a column mapping task
Browse files Browse the repository at this point in the history
  • Loading branch information
Yun-Wu committed Jun 20, 2024
1 parent 57e47cf commit 38df604
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
Empty file.
23 changes: 23 additions & 0 deletions ecoscope_workflows/tasks/transformation/column_mapping.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from typing import Annotated

from pydantic import Field

from ecoscope_workflows.annotations import DataFrame, JsonSerializableDataFrameModel
from ecoscope_workflows.decorators import distributed


@distributed
def map_columns(
df: DataFrame[JsonSerializableDataFrameModel],
drop_columns: Annotated[list[str], Field()],
retain_columns: Annotated[list[str], Field()],
rename_columns: Annotated[dict[str, str], Field()],
) -> DataFrame[JsonSerializableDataFrameModel]:

df.drop(columns=drop_columns, inplace=True)
if retain_columns:
df.reindex(columns=[retain_columns], inplace=True)
if rename_columns:
df.rename(columns=rename_columns, inplace=True)

return df

0 comments on commit 38df604

Please sign in to comment.