首页 > 解决方案 > 使用 Python 解析频率分布图的嵌套行文本文档

问题描述

我有一个具有以下结构的文档:

CUSTOMERID1
    conversation-id-123
    conversation-id-123
    conversation-id-123
CUSTOMERID2
    conversation-id-456
    conversation-id-789

我想解析文档以获得频率分布图,其中 X 轴上的对话数量和 Y 轴上的客户数量。有谁知道用 Python 做到这一点的最简单方法?

我熟悉频率分布图,但我正在努力将数据解析为正确的数据结构以构建图。感谢您提前提供的任何帮助!

标签: pythonparsingfrequency-distribution

解决方案


您可以尝试以下方法:


>>> dict_ = {}
    
>>> with open('file.csv') as f:
        for line in f:
            if line.startswith('CUSTOMERID'):
                dict_[line.strip('\n')] = list_ = []
            else:
                list_.append(line.strip().split('-'))
    
>>> df = pd.DataFrame.from_dict(dict_, orient='index').stack()
>>> df.transform(lambda x:x[-1]).groupby(level=0).count().plot(kind='bar')

输出:

在此处输入图像描述

如果您只想要1和轴,只需2将此行更改为.Xdict_[line.strip('\n')] = list_ = []dict_[line.strip('CUSTOMERID/\n')] = list_ = []


推荐阅读