我是Python的新手,所以提前抱歉我的新手问题和错误。
我自己试图找到它,但我觉得我错过了一些基本信息。
目标是在条形图中绘制此信息。
我将列与pandas数据帧分开,43169行×1列。示例:
user_lifetime
0 947.000000
1 951.000000
2 523.000000
3 741.000000
4 840.000000
5 563.000000
为了绘制这个,我需要得到每个唯一值的频率,对吧? 发现这个:
lifetime=df.apply(lambda x: x.value_counts(dropna=False)).
它生成一个像这样的表
user_lifetime
15947.000000 4677
15916.000000 1951
2017.000000 1917
2016.000000 1131
2014.000000 445
这似乎是我的目标,但它似乎不是我可以用于绘图的表格。
对我错过的任何建议? 我的顶级包优先级是ggplot,因为我们在演讲中使用了这些示例。
答案 0 :(得分:2)
您需要链接pd.Series.value_counts和plot(kind='bar')
(或plot.bar()
,版本0.17.1中的新内容并且完全相同)
df['user_lifetime'].value_counts().plot(kind='bar')
你可能最终得到了大量的酒吧......也许你正在寻找一个直方图,其中每个值最终都在垃圾箱里? DataFrame.hist
是你需要的。
如果我使用一些随机数据:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,1000,(40000,1)), columns=['user_lifetime'])
如果我使用上面的话,我会有太多的酒吧。所以我想要一个直方图,比如20个箱子:
df.user_lifetime.hist(bins=20)