#python #pandas #function #dataframe #plot
#python #pandas #функция #фрейм данных #график
Вопрос:
У меня есть фрейм данных с несколькими столбцами и переменными so. Я хотел бы создать функцию для применения к некоторым переменным фрейма данных для создания некоторых дисплотов, представляющих среднее значение, медиану и режим. Я нашел отличный код для этого, как вы увидите после.
Моя проблема в том, что я хотел бы автоматизировать создание отображения, а не копировать и вставлять его каждый раз, когда я хочу создать график для другой переменной, и я не уверен, как это сделать.
Вот код (и я хотел бы легко изменить переменную ‘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, color='r', linestyle='--')
ax_hist.axvline(median, color='g', linestyle='-')
ax_hist.axvline(mode, color='b', linestyle='-')
plt.legend({'Mean':mean,'Median':median,'Mode':mode})
ax_box.set(xlabel='')
plt.show()
Ответ №1:
Вы можете создать переменную, назвать ее 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?
Комментарии:
1. Спасибо за помощь 🙂