Closed
Description
Proposal description
Dataclasses were added in Python 3.7.
It would be nice for pandas to support dataclasses. For example could be possible to construct dataframe from by calling .from_dataclasses
or just .DataFrame(data=dataclass_list)
. There should be also possibility to do .to_dataclasses
.
Expected Behaviour
from dataclasses import dataclass
import pandas as pd
@dataclass
class SimpleDataObject(object):
field_a: int
field_b: str
dataclass_object1 = SimpleDataObject(1, 'a')
dataclass_object2 = SimpleDataObject(2, 'b')
>>> asd
# Dataclasses to DataFrame
df = pd.from_dataclasses([dataclass_object1, dataclass_object2])
df.dtypes == ['field_a', 'field_b']
>>> True
df.dtypes == ['int', 'str']
>>> True
# Dataclasses to DataFrame
df = pd.DataFrame(data=[dataclass_object1, dataclass_object2])
df.dtypes == ['field_a', 'field_b']
>>> True
df.dtypes == ['int', 'str']
>>> True
# DataFrame to Dataclasses
df = pd.DataFrame(columns=['field_a', 'field_b'], data=[[1, 'a'], [2, 'b']])
dataclass_list = df.to_dataclasses()
dataclass_list == [dataclass_object1, dataclass_object2]
>>> True