使用 Python 解析频率分布图的嵌套行文本文档

Parsing Nested Row Text Document for Frequency Distribution Plot with Python

我有一个结构如下的文档:

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

我想解析文档以获取频率分布图,其中 X 轴为对话数量,Y 轴为客户数量。有谁知道使用 Python 执行此操作的最简单方法?

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

您可以尝试以下方法:


>>> 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')

输出:

如果您只想在 X 轴中使用 12,只需将 dict_[line.strip('\n')] = list_ = [] 这一行更改为 dict_[line.strip('CUSTOMERID/\n')] = list_ = []