我有一个具有唯一客户ID和日期的数据框。 我的datframe看起来像这样
date objectId
15/07/18 "__gb5c9e15dfc004930b8ac9d5d1df1880e"
16/07/18 "__g0b2abb9da5d646eb930c1ce9bb6df5ef"
16/07/18 "__c5ff64e5448c44fabe26e88bc0e41497"
17/07/18 "__c7b0a5824a914d7198a328cdf35c95bf"
18/07/18 "__8929216e8d534569ae6fd6701c92fc4c"
19/07/18 "__gec079853a06748a79b4d101713c1e21d"
19/07/18 "__d7f24fa5909b43f4a5282877ed4eed3e"
19/07/18 "__ga523090706304454ba581d79f366816a"
19/07/18 "__d409d75e4207409b8ea030f69b70bf83"
19/07/18 "-g940dc0277b7f46c8b7d8de195a8fd975"
20/07/18 "__d7f24fa5909b43f4a5282877ed4eed3e"
20/07/18 "__ga523090706304454ba581d79f366816a"
21/07/18 "__d409d75e4207409b8ea030f69b70bf83"
21/07/18 "-g940dc0277b7f46c8b7d8de195a8fd975"
我想绘制一个图表,在该图表中我要统计访问一次,两次等等的客户数量。 y轴-对象ID重复的次数 x轴-重复的对象ID的计数。我尝试过
date_df['objectId'].value_counts().plot(kind='bar')
答案 0 :(得分:0)
这不是一个很好的数据集,因为对于大多数条目,您很可能只会获得一个高度为1的小节高度,并且由于有很多客户,您根本不会获得很好的概览。
无论如何,假设相同的客户无论何时都获得相同的ID,则可以将所有ID放在列表中,对列表进行排序,然后绘制直方图,其中柱形数=列表中的唯一条目数。
val
此列表现在可以用作直方图的输入。
编辑:您的评论“它在x轴上给出了不同的objectID”实际上是很有趣的,因为这是这种绘图数据集的唯一可能输出-直方图,在y轴上出现次数,在x轴。
对于绘图,看起来像
customer_list = sorted(date_df['objectId'].tolist())
该集合将删除所有重复项,然后len为您提供列表中唯一项的数量。通过将垃圾箱设置为该数字,您可以为每个客户获得一个直方图栏。