рд╣рд╛рдмрд░рд╛ рдореЗрдЧрд╛рд░реЗрдЯрд┐рдВрдЧ: 12 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдмрд░ рдХрд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд▓реЗрдЦ рдФрд░ рдЖрдБрдХрдбрд╝реЗред рднрд╛рдЧ рез/реи

рд╣рд╛рдп рд╣рдорд░ред

2017 рдФрд░ 2018 рдХреЗ рд▓рд┐рдП рд▓реЗрдЦреЛрдВ рдХреА рд░реИрдВрдХрд┐рдВрдЧ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдерд╛ - рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░реЗрдЯрд┐рдВрдЧ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рд▓рд┐рдВрдХ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реА рдЯреНрд░рд╛рдЗрдЯ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдкрдпреЛрдЧреА рднреА рд╣реЛрдЧрд╛) рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред



рд░реЗрдЯрд┐рдВрдЧ, рдЖрдВрдХрдбрд╝реЗ рдФрд░ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдПрдХ рд╕рд╛ред

рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ


рдЬреЛ рд▓реЛрдЧ рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рд╡реЗ рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмреАрдЪ, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ csv рдлрд╝рд╛рдЗрд▓ рд╣реИ:

datetime,link,title,votes,up,down,bookmarks,views,comments 2006-07-13T14:23Z,https://habr.com/ru/post/1/,"Wiki-FAQ  ",votes:1,votesplus:1,votesmin:0,bookmarks:8,views:28300,comments:56 2006-07-13T20:45Z,https://habr.com/ru/post/2/,"     тАж !",votes:1,votesplus:1,votesmin:0,bookmarks:1,views:14600,comments:37 ... 2019-01-25T03:47Z,https://habr.com/ru/post/435118/,"Save File Me тАФ        ",votes:5,votesplus:5,votesmin:0,bookmarks:26,views:1800,comments:6 2019-01-08T03:09Z,https://habr.com/ru/post/435120/,"Lambda-  SQLтАж  ",votes:9,votesplus:13,votesmin:4,bookmarks:63,views:5700,comments:30 

рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рднреА рд▓реЗрдЦреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ 42 рдПрдордмреА рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 10 рджрд┐рдиреЛрдВ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (рдбрд╛рдЙрдирд▓реЛрдб рдПрдХ рд╣реА рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд░реБрдХрд╛ рд╣реБрдЖ рдерд╛ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдУрд╡рд░рд▓реЛрдб рди рд╣реЛ)ред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕рдм рд╕реЗ рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд╛рдЗрдЯ рдСрдбрд┐рдпрдВрд╕


рдЖрдЗрдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рд╣рдо рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВрдЧреЗред рдореЛрдЯреЗ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП, рдЖрдк рд▓реЗрдЦреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

 import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv(log_path, sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#') def to_int(s): # "bookmarks:22" => 22 num = ''.join(i for i in s if i.isdigit()) return int(num) dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ') dates += datetime.timedelta(hours=3) comments = df["comments"].map(to_int, na_action=None) plt.rcParams["figure.figsize"] = (9, 6) fig, ax = plt.subplots() plt.plot(dates, comments, 'go', markersize=1, label='Comments') ax.xaxis.set_major_locator(mdates.YearLocator()) plt.ylim(bottom=0, top=1000) plt.legend(loc='best') fig.autofmt_xdate() plt.tight_layout() plt.show() 

рдбреЗрдЯрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдкрд░рд┐рдгрд╛рдо рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ - рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ 2009 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рд╛рдЗрдЯ рдХреЗ рд╕рдХреНрд░рд┐рдп рджрд░реНрд╢рдХ (рд▓реЗрдЦреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ) рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдврд╝реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╢рд╛рдпрдж рд╕рднреА рдЖрдИрдЯреА рдХрд░реНрдордЪрд╛рд░реА рд╕рд┐рд░реНрдл рдпрд╣рд╛рдБ рд╣реИрдВ?

рдЬрдм рд╕реЗ рд╣рдо рджрд░реНрд╢рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣реИрд░ рдХреЗ рдирд╡реАрдирддрдо рдирд╡рд╛рдЪрд╛рд░ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ - рд╕рд╛рдЗрдЯ рдХрд╛ рдПрдХ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдгред рд▓рд┐рдВрдХ рдХреЗ рдЕрдВрджрд░ "/ en /" рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВред

 df = df[df['link'].str.contains("/en/")] 

рдкрд░рд┐рдгрд╛рдо рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ (рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкреИрдорд╛рдиреЗ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):



рдкреНрд░рдХрд╛рд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ 15 рдЬрдирд╡рд░реА, 2019 рдХреЛ рд╢реБрд░реВ рд╣реБрдИ, рдЬрдм рд╣реИрд▓реЛ рджреБрдирд┐рдпрд╛ рдХреА рдШреЛрд╖рдгрд╛ рд╣реБрдИ ! рдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИрдмрд░ , рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ 3 рд▓реЗрдЦреЛрдВ рдХреЗ рдХрдИ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХреЗ рдереЗ: 1 , 2, рдФрд░ 3 ред рд╢рд╛рдпрдж рдпрд╣ рдмреАрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдерд╛?

рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛


рдЕрдЧрд▓рд╛ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛, рд▓реЗрдЦ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдкреНрд░рдХрд╛рд╢рди рддрд┐рдерд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдореЗрдВ habr.com/en/post/N рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ , рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдВрдд-рд╕реЗ-рдЕрдВрдд рд╣реЛрддреА рд╣реИ, рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ 1 рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЬреЛ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ 441740 рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдкрдВрдбреЛрдВ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рддрд┐рдерд┐рдпреЛрдВ рдФрд░ рдЖрдИрдбреА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд▓реЙрдЯ рдХрд░реЗрдВ:

 df = pd.read_csv(log_path, header=None, names=['datetime', 'votes', 'bookmarks', 'views', 'comments']) dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%M:%S.%f') dates += datetime.timedelta(hours=3) df['datetime'] = dates def link2id(link): # https://habr.com/ru/post/345936/ => 345936 if link[-1] == '/': link = link[0:-1] return int(link.split('/')[-1]) df['id'] = df["link"].map(link2id, na_action=None) plt.rcParams["figure.figsize"] = (9, 6) fig, ax = plt.subplots() plt.plot(df_ids['id'], df_ids['datetime'], 'bo', markersize=1, label='Article ID') ax.yaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y")) ax.yaxis.set_major_locator(mdates.MonthLocator()) plt.legend(loc='best') fig.autofmt_xdate() plt.tight_layout() plt.show() 

рдкрд░рд┐рдгрд╛рдо рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ - рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп "рдЖрдЙрдЯрд▓реЗрдпрд░" рд╣реИрдВред



рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдХрд╛рд░рдг, рджрд░реНрд╢рдХреЛрдВ рдХреЗ рдкрд╛рд╕ 2017 рдФрд░ 2018 рдХреЗ рд▓рд┐рдП рд░реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдереЗ - "рдЧрд▓рдд" рдЖрдИрдбреА рд╡рд╛рд▓реЗ рдРрд╕реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпреЛрдВ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдПрдХ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдорд╕реМрджрд╛ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЖрддреА рд╣реИред рдХреЛрдИ рдЙрд╕реА рджрд┐рди рд▓реЗрдЦ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдмрд╛рдж рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ? рдЖрдЗрдП рдПрдХреНрд╕-рдПрдХреНрд╕, рдФрд░ рддрд┐рдерд┐рдпреЛрдВ рдкрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд░рдЦреЗрдВ, рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВ:



рдкрд░рд┐рдгрд╛рдо - рд╣рдо рдареЛрд╕ рд░реЗрдЦрд╛ рдХреЗ рдКрдкрд░ рдбреЙрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрд╛рджрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХрддрдо рдЕрдВрддрд░рд╛рд▓ 1-2 рд╕рдкреНрддрд╛рд╣ рддрдХ рдЧрд┐рд░рддрд╛ рд╣реИред рд▓рдЧрднрдЧ рд╕рдВрдкреВрд░реНрдг рд▓реЗрдЦреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рд▓реЗрдЦ рдбреНрд░рд╛рдлреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХрдИ рдорд╣реАрдиреЛрдВ рдмрд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдмреЗрд╢рдХ, рдпрд╣ рд╣рдореЗрдВ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдХрдИ рдорд╣реАрдиреЛрдВ рддрдХ рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ рд▓реЗрдЦ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ)ред

рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд┐рдерд┐ рдФрд░ рд╕рдордп


рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк, рдпрджреНрдпрдкрд┐ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд, рдмрд┐рдВрджреБ рд▓реЗрдЦреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рд╕рдордп рд╣реИред

рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдЖрдБрдХрдбрд╝реЗ:

 print("Group by hour (average, working days):") df_workdays = df[(df['day'] < 5)] g = df_workdays.groupby(['hour']) hour_count = g.size().reset_index(name='counts') grouped = g.median().reset_index() grouped['counts'] = hour_count['counts'] print(grouped[['hour', 'counts', 'views', 'comments', 'votes', 'votesperview']]) print() view_hours = grouped['hour'].values view_hours_avg = grouped['counts'].values fig, ax = plt.subplots() plt.bar(view_hours, view_hours_avg, align='edge', label='Publication Time (Mo-Fr)') ax.set_xticks(range(24)) ax.xaxis.set_major_formatter(FormatStrFormatter('%d:00')) plt.legend(loc='best') fig.autofmt_xdate() plt.tight_layout() plt.show() 

рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛:



рддрд╕реНрд╡реАрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдХрд╛рд╢рди рдХрд╛рдо рдХреЗ рдШрдВрдЯреЛрдВ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдЕрднреА рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рд▓рд┐рдЦрдирд╛ рдореБрдЦреНрдп рдХрд╛рдо рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рд╡реЗ рдХрд╛рдо рдХреЗ рдШрдВрдЯреЛрдВ рдХреЗ рджреМрд░рд╛рди рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? ;) рд▓реЗрдХрд┐рди рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░ рд╡рд┐рддрд░рдг рдЕрдиреБрд╕реВрдЪреА рдПрдХ рдЕрд▓рдЧ рддрд╕реНрд╡реАрд░ рджреЗрддрд╛ рд╣реИ:



рдЪреВрдВрдХрд┐ рд╣рдо рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЪрд▓реЛ рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рди рддрдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп рдФрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреЗрдВред

 g = df.groupby(['day', 'dayofweek']) dayofweek_count = g.size().reset_index(name='counts') grouped = g.median().reset_index() grouped['counts'] = dayofweek_count['counts'] grouped.sort_values('day', ascending=False) print(grouped[['day', 'dayofweek', 'counts', 'views', 'comments', 'votes', 'votesperview']]) print() view_days = grouped['day'].values view_per_day = grouped['views'].values counts_per_day = grouped['counts'].values days_of_week = grouped['dayofweek'].values plt.bar(view_days, view_per_day, align='edge', label='Avg.Views/day') plt.bar(view_days, counts_per_day, align='edge', label='Amount/day') plt.xticks(view_days, days_of_week) plt.ylim(bottom=0, top=10000) plt.show() 

рдкрд░рд┐рдгрд╛рдо рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░ рдХрд╛рдлреА рдХрдо рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдЦ рдХрд╛ рд╕рдХреНрд░рд┐рдп рдЬреАрд╡рди 3-4 рджрд┐рдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреБрдЫ рджрд┐рди рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ)ред

рд▓реЗрдЦ рд╢рд╛рдпрдж рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рд╕рдорд╛рдкреНрддред

Source: https://habr.com/ru/post/hi441740/


All Articles