繁体   English   中英

使用 matplotlib 绘图的高级熊猫 value_counts()

[英]Advanced pandas value_counts() with matplotlib plotting

我管理着一个网站,我一直在使用 Pandas 进行数据分析,以从我的产品和提供这些产品的公司中获得有用的见解。

现在在我的网站上,那里有大量的产品,我给每个产品一个 ID 来标识一个公司生产的每个产品,这意味着一个公司可以有不同的产品,即。 产品 ID。

在我的网站上,您可以比较不同公司满足您需求的产品,我对网站进行了编程,只允许进行三种比较。 您一次只能比较具有不同功能的三种产品。

我已经能够设置谷歌分析来跟踪数据。 例如下面的图表:客户将product IDs 920470212并排比较。

在此处输入图片说明

我想为每个产品独立执行value_counts ,然后查看哪些产品与其他产品的比较最多,并且有这样的Seabornmatplotlib Group bar plot

在此处输入图片说明

为方便起见,这是dataframe

df = pd.DataFrame({'ProductID_A': ['920','162','920','920','920','165','920'],
 'ProductID_B': ['470','470','470','212', np.nan,'470','470'],
 'ProductID_C': ['212','212',"212", "570",'212','1670', '212']})

谢谢你的时间。

这是否达到了您想要的结果?

df. unstack df. unstack枢轴原来的数据帧,然后reset_index是用来转换一切,所以它不再分组。 groupby 中的列名称是 unstack 中的默认值,但可以在您的图中更改或指定。

df1 = pd.DataFrame(df.unstack()).reset_index()

df2 = df1[[0, 'level_0']].groupby(0).count()

sns.barplot(x= df2.index, y = 'level_0', data = df2)
plt.ylabel('count')
plt.xlabel('product ID')

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM