| name | pandas-operator |
| description | Reference documentation for the PandasOperator operator.
Use when: applying custom DataFrame transformations without LLM. |
| trigger_keywords | ["PandasOperator","pandas-operator","DataFrame transformation","custom transformation"] |
| version | 1.0.0 |
PandasOperator Operator Reference
PandasOperator applies a list of transformation functions to a DataFrame sequentially. Each function receives a DataFrame and returns a modified DataFrame.
1. Import
from dataflow.operators.core_text import PandasOperator
2. Constructor
PandasOperator(
process_fn=[
lambda df: df.rename(columns={"old": "new"}),
lambda df: df[df["score"] > 0],
]
)
| Parameter | Required | Default | Description |
|---|
process_fn | Yes | None | List of transformation functions, each with signature (df: DataFrame) -> DataFrame |
3. run() Signature
op.run(
storage=self.storage.step(),
)
| Parameter | Required | Default | Description |
|---|
storage | Yes | None | Storage step object |
4. Usage Example
from dataflow.operators.core_text import PandasOperator
from dataflow.utils.storage import FileStorage
class MyPipeline:
def __init__(self):
self.storage = FileStorage(
first_entry_file_name="./data/input.jsonl",
cache_path="./cache",
file_name_prefix="step",
cache_type="jsonl"
)
self.transformer = PandasOperator(
process_fn=[
lambda df: df.assign(score2=df["score"] * 2),
lambda df: df.sort_values("score", ascending=False),
lambda df: df.drop(columns=["temp_col"])
]
)
def forward(self):
self.transformer.run(
storage=self.storage.step()
)
if __name__ == "__main__":
pipeline = MyPipeline()
pipeline.forward()
5. Runtime Logic
- Read DataFrame from storage.
- Apply each function in
process_fn sequentially.
- Each function receives the output DataFrame from the previous function.
- Validate each function is callable and returns a DataFrame.
- Write final DataFrame to storage.
- Return empty string.
6. Important Notes
- Each function in
process_fn must return a pd.DataFrame
- Functions are applied in list order
- No
input_key or output_key parameters (column operations are in lambda functions)
- Does not call LLM (pure pandas operations)