Постройте линейный график сценария c между количеством имеющихся точек данных и соответствующим годом - PullRequest
1 голос
/ 27 мая 2020

У меня есть фрейм данных data.

data

cast From        To 
A    12-01-1990  31-04-2000
B    01-02-1996  04-02-1997
C    03-09-1990  13-04-1994
D    09-09-1991  23-06-1999
E    09-01-1992  09-03-2000
F    01-02-1997  08-11-1999

Здесь фрейм данных показывает наличие «приведения» между годами.

Как построить линейный график (или любой другой) с использованием matplotlib, seaborn или любого другого модуля в python между Годом по оси X и общим количеством приведений, доступных в соответствующем году по оси Y. Например, в 1990 году было доступно 2 актеров; 1991 сот 3; 1992 г. 4; 1993 г. 4; 1994 г. 4; 1995 г. 3; 1996 г. 4; 1997 г. 5; 1998 г. 4; 1999 - 4 и, наконец, 2000 - 2.

Участок с большинством сценариев c просмотр - дополнительное преимущество. Заранее спасибо.

1 Ответ

1 голос
/ 27 мая 2020

Один из способов - разбить столбцы на отдельные годы и подсчитать:

# min year and max year
min_year,max_year = df['From'].dt.year.min(), df['To'].dt.year.max()

# all years in data
year_df = pd.DataFrame({
    'active': range(min_year, max_year+1),
    'dummy':1
})

# merge, query for valid years and plot
(df.assign(dummy=1,
           From=df.From.dt.year,
           To=df.To.dt.year)
   .merge(year_df, on='dummy', how='left')
   .query('From <= active <= To')
   ['active'].value_counts(sort=False)
   .plot.bar()
)

Результат:

enter image description here

...