У меня довольно большой фрейм данных, который выглядит примерно так (это фиктивные данные в качестве примера, так как в данных более 50 стран):
Date Country Counts
----------------------------------
2019-01-21 Italy 920182
2019-01-22 Italy 82912
2019-01-23 Italy 27213
2019-01-24 Italy 28293
2019-01-21 Belgium 373732
2019-01-22 Belgium 17363
2019-01-23 Belgium 282913
2019-01-24 Belgium 2122
2019-01-21 China 234211
2019-01-22 China 1234
2019-01-23 China 13456
2019-01-24 China 8291
Раньше я вручную создавал графики отдельно для каждой страны в этом фрейме данных, поэтому у меня может быть линия тренда, показывающая количество сверхурочных, а также красная линия, представляющая общее среднее значение по стране. Код, который я использовал для этого для каждой страны отдельно, был следующим:
Italy_df = df.loc[df['Country'] == 'Italy'] #search for all Italy data
Italy_df['Count'].mean() #total mean for Italy
x = Italy_df['Date']
y = Italy_df['Counts']
fig, ax = plt.subplots()
ax.plot(x, y)
plt.axhline(y=34927.23, color='r', linestyle='--') #y is the mean calculated for all Italy counts
plt.xticks(rotation=90)
plt.title("Weekly Sim Count average in Italy")
plt.xlabel('Week')
#plt.show()
a = '2020-01-13' #Key dates area
b = '2020-02-10'
plt.axvspan(a, b, color='gray', alpha=0.2, lw=0)
plt.plot(x, y, color='blue') #trend line over time
plt.show()
График, возвращаемый для Италии, выглядит примерно так: я бы хотел, чтобы этот же стиль графика возвращался для каждой страны в мой набор данных отдельно:
На графиках ключевые даты, выделенные в сером поле, останутся одинаковыми для всех стран, однако 1) красная линия изменится в соответствии с означает страны и 2) Синяя линия также изменится, чтобы представить количество.
Вместо того, чтобы я повторял этот код для создания графика для каждой страны, есть ли способ создать al oop, который бы их графики отдельно для всех стран в фрейме данных? Это сэкономило бы мне столько времени :)
Большое спасибо