如何解决创建一个函数作为pandas列变量之一的输入以创建图
我有一个包含多个列和一个变量的数据框。 我想创建一个函数,将其应用于数据框的某些变量,以创建表示均值,中位数和众数的展开图。 我找到了一个不错的代码,您将在后面看到。
我的问题是,每次我想在另一个变量上创建图并且我不确定如何执行此操作时,我想自动创建图,而不是复制粘贴它。
这是代码(我想轻松地更改变量'fat_100g'):
f,(ax_Box,ax_hist) = plt.subplots(2,sharex=True,gridspec_kw= {"height_ratios": (0.2,1)})
mean=df['fat_100g'].mean()
median=df['fat_100g'].median()
mode=df['fat_100g'].mode().to_numpy()[0]
sns.Boxplot(df["fat_100g"],ax=ax_Box)
ax_Box.axvline(mean,color='r',linestyle='--')
ax_Box.axvline(median,color='g',linestyle='-')
ax_Box.axvline(mode,color='b',linestyle='-')
sns.distplot(df["fat_100g"],ax=ax_hist)
ax_hist.axvline(mean,linestyle='--')
ax_hist.axvline(median,linestyle='-')
ax_hist.axvline(mode,linestyle='-')
plt.legend({'Mean':mean,'Median':median,'Mode':mode})
ax_Box.set(xlabel='')
plt.show()
解决方法
您可以创建一个变量,将其命名为key =(无论您想要什么),然后使用:
mean=df[key].mean()
如果您想遍历所有这些内容:
for key in list(df.columns):
##Do the plotting code; pay attention to not overwriting axes if you want to do this,maybe make ax a list and loop through the list using ax[ind] and add to the ind every loop?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。