import os
from pathlib import Path
from typing import Callable, Optional, Union
import pandas as pd
from .paths import paths
[ドキュメント]class DfData:
_df: pd.DataFrame
def __init__(self, df):
self._df = df
[ドキュメント] def to(self, file):
self._df.to_csv(file, index=False)
return self
[ドキュメント] def apply(self, func: Callable[[pd.DataFrame], pd.DataFrame]):
self._df = func(self._df)
return self
[ドキュメント]class FileData:
_filename: Union[str, Path]
_skip_rows: Optional[int] = None
def __init__(self, filename: Union[str, Path]):
self._filename = filename
[ドキュメント] def skip(self, skip: int):
self._skip_rows = skip
return self
[ドキュメント] def csv(self) -> DfData:
df = pd.read_csv(self._filename, skiprows=self._skip_rows)
return DfData(df)
[ドキュメント]def original(filename: str) -> FileData:
return FileData(paths.original / filename)