Empty pandas dataframe with datatypes preserved

43 Views Asked by At

I want to make an empty df with preserved datatypes as a template. Code is as follows:

import pandas as pd
import datetime
from dataclasses import dataclass

@dataclass
class OpenOrder:
    symbol: str = "Dummy"
    secType: str = "STK"
    dt: datetime.datetime = datetime.datetime.now()
    price: float = 0.0
    status: str = None

    def empty(self):
        open_ord = self()
        empty_df = pd.DataFrame([open_ord.__dict__])
        return empty_df.iloc[0:0]

Instantiation works, but emptying doesn't.

open_order = OpenOrder()
order_df = open_order.empty()

How can I make this work?

1

There are 1 best solutions below

0
Oskar Hofmann On BEST ANSWER

You cannot call self() as self is a reference to the object and not to the class. Just use

def empty(self):
        empty_df = pd.DataFrame([self.__dict__])
        return empty_df.iloc[0:0]