用 pandas 将表格直接转换为树形结构转换为、表格、直接、结构

2023-09-04 02:27:08 作者:多余的眼泪

我要转换此CSV文件格式:

Python使用Pandas读写EXCEL文件教程

转换为具有以下结构的hdf5文件:

我用的是 pandas 。有什么简单的方法可以做到这一点吗?

推荐答案

您可以通过collections.defaultdict使用嵌套词典:

from collections import defaultdict
import pandas as pd

# read csv file
# df = pd.read_csv('input.csv', header=None)

df = pd.DataFrame([['A', 'a', 'a1'],
                   ['A', 'a', 'a2'],
                   ['A', 'b', 'b1'],
                   ['A', 'b', 'b2'],
                   ['A', 'c', 'c1'],
                   ['A', 'c', 'c2']],
                  columns=['col1', 'col2', 'col3'])

d = defaultdict(lambda: defaultdict(list))

for row in df.itertuples():
    d[row[1]][row[2]].append(row[3])

结果

defaultdict(<function __main__.<lambda>>,
            {'A': defaultdict(list,
                         {'a': ['a1', 'a2'],
                          'b': ['b1', 'b2'],
                          'c': ['c1', 'c2']})})