我是 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,因为我们在讲座中使用了这些示例。
最佳答案
您需要链接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 个 bin:
df.user_lifetime.hist(bins=20)
关于python - 绘图 : single big column and its frequencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312503/