Skip to content

csv ¤

csv_export ¤

csv_export(
    dataframe: DataFrame,
    path: str | Path = "data/data.csv",
    tz: timezone = None,
    round: int = 5,
    **kwargs
) -> DataFrame

Dump DataFeed to csv file. Inject function pandas.DataFrame.let_to_csv()

Parameters:

  • dataframe (DataFrame) –

    description

  • path (str | Path, default: 'data/data.csv' ) –

    description. Defaults to "data/data.csv".

  • tz (timezone, default: None ) –

    description. Defaults to None.

  • round (int, default: 5 ) –

    description. Defaults to 5.

Returns:

  • DataFrame

    pd.DataFrame: description

Source code in lettrade/data/extra/csv.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def csv_export(
    dataframe: pd.DataFrame,
    path: str | Path = "data/data.csv",
    tz: timezone = None,
    round: int = 5,
    **kwargs,
) -> pd.DataFrame:
    """Dump DataFeed to csv file. Inject function `pandas.DataFrame.let_to_csv()`

    Args:
        dataframe (pd.DataFrame): _description_
        path (str | Path, optional): _description_. Defaults to "data/data.csv".
        tz (timezone, optional): _description_. Defaults to None.
        round (int, optional): _description_. Defaults to 5.

    Returns:
        pd.DataFrame: _description_
    """
    dataframe = dataframe.astype(
        dtype={
            "open": "float",
            "high": "float",
            "low": "float",
            "close": "float",
            "volume": "float",
        }
    )

    if not isinstance(dataframe.index, pd.DatetimeIndex):
        dataframe = dataframe.set_index("datetime")

    if tz is not None:
        dataframe.index = dataframe.index.tz_convert(tz)

    if round > 0:
        dataframe = dataframe.round(round)

    if not isinstance(path, Path):
        path = Path(path)

    path.parent.mkdir(parents=True, exist_ok=True)
    dataframe.to_csv(path, **kwargs)

    logger.info("Saved data to %s", path)
    return dataframe