微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建一个函数作为pandas列变量之一的输入以创建图

如何解决创建一个函数作为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 举报,一经查实,本站将立刻删除。