Создайте функцию в качестве входных данных одного из столбцов pandas (переменной) для создания графиков

#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. Спасибо за помощь 🙂