小编Gus*_*ler的帖子

如何在序列化为 pandas 数据帧时展平嵌套数据类?

我有包含其他数据类作为其字段的数据类:

@dataclass
class Bar:
    abc: int
    bed: int
    asd: int


@dataclass
class Foo:
    xy: int
    yz: Bar
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过 pandas 将其序列化为 csv,如下所示:

dataset = [Foo(xy=1, yz=Bar(abc=1, bed=2, asd=3))]
pd_dataset = pandas.DataFrame(vars(row) for row in dataset)
pd_dataset.to_csv('dataset_example.csv', index=False)
Run Code Online (Sandbox Code Playgroud)

但我得到的结果与我想要的有点不同。准确地说,我现在得到:

xy,yz
1,"Bar(abc=1, bed=2, asd=3)"
Run Code Online (Sandbox Code Playgroud)

而且我要:

xy,yz_abc,yz_bed,yz_asd
1,1,2,3
Run Code Online (Sandbox Code Playgroud)

你能帮我做对吗?我尝试编写自己的序列化函数并执行类似的操作: pandas.DataFrame(asdict(row, dict_factory=row_to_dict) for row in dataset) 但我不知道如何正确编写它。

python pandas python-dataclasses

5
推荐指数
1
解决办法
7751
查看次数

标签 统计

pandas ×1

python ×1

python-dataclasses ×1