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

Converting table directly to tree structure with pandas(用 pandas 将表格直接转换为树形结构)

本文介绍了用 pandas 将表格直接转换为树形结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要转换此CSV文件格式:

转换为具有以下结构的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']})})

这篇关于用 pandas 将表格直接转换为树形结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:用 pandas 将表格直接转换为树形结构