[英]Advanced pandas value_counts() with matplotlib plotting
我管理着一个网站,我一直在使用 Pandas 进行数据分析,以从我的产品和提供这些产品的公司中获得有用的见解。
现在在我的网站上,那里有大量的产品,我给每个产品一个 ID 来标识一个公司生产的每个产品,这意味着一个公司可以有不同的产品,即。 产品 ID。
在我的网站上,您可以比较不同公司满足您需求的产品,我对网站进行了编程,只允许进行三种比较。 您一次只能比较具有不同功能的三种产品。
我已经能够设置谷歌分析来跟踪数据。 例如下面的图表:客户将product IDs
920
与470
和212
并排比较。
我想为每个产品独立执行value_counts
,然后查看哪些产品与其他产品的比较最多,并且有这样的Seaborn
或matplotlib 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.