python - 使用 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')
输出:
如果您只想要1
和轴,只需2
将此行更改为.X
dict_[line.strip('\n')] = list_ = []
dict_[line.strip('CUSTOMERID/\n')] = list_ = []