Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

Hey Habr.

Edemede a bụ ihe ezi uche dị na ya ga n'ihu maka ọkwa ahụ Akụkọ Habr kacha mma maka 2018. Ma ọ bụ ezie na afọ ahụ agwụbeghị, dị ka ị maara, n'oge okpomọkụ, e nwere mgbanwe na iwu, ya mere, ọ ghọrọ ihe na-adọrọ mmasị ịhụ ma ọ bụrụ na nke a metụtara ihe ọ bụla.

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

Na mgbakwunye na ọnụ ọgụgụ n'ezie, a ga-enye ọkwa emelitere nke akụkọ yana ụfọdụ koodu isi mmalite maka ndị nwere mmasị ka ọ si arụ ọrụ.

Maka ndị nwere mmasị na ihe merenụ, ihe na-aga n'ihu dị n'okpuru ịkpụ. Ndị nwere mmasị na nyocha zuru ezu nke akụkụ nke saịtị ahụ nwekwara ike ile anya akụkụ ọzọ.

Nkọ data

Nke a bụ ọkwa na-akwadoghị, na enweghị m ozi ọ bụla n'ime. Dịka ị nwere ike ịhụ ngwa ngwa site na ilele akara adreesị nke ihe nchọgharị gị, akụkọ niile dị na Habré nwere ọnụọgụ na-aga n'ihu. Mgbe ahụ, ọ bụ ihe gbasara usoro, anyị na-agụ naanị isiokwu niile n'usoro n'usoro na okirikiri (na otu eri na nkwụsịtụ, ka ị ghara ibu ihe nkesa). E nwetara ụkpụrụ ndị ahụ n'onwe ha site na ntụgharị dị mfe na Python (isi mmalite dị ebe a) wee chekwaa ihe dị ka nke a na faịlụ csv:

2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/,"В NASA испытали систему автономного управления одного микроспутника другим",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7

Nhazi

Maka nyocha anyị ga-eji Python, Pandas na Matplotlib. Ndị na-enweghị mmasị na ọnụ ọgụgụ nwere ike ịgafe akụkụ a wee gaa ozugbo na akụkọ.

Mbụ ị ga-ebuba dataset n'ime ebe nchekwa wee họrọ data maka afọ achọrọ.

import pandas as pd
import datetime
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter
from pandas.plotting import register_matplotlib_converters


df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
df['datetime'] = dates
year = 2019
df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))]

print(df.shape)

Ọ tụgharịrị na n'afọ a (n'agbanyeghị na ọ kabeghị) n'oge edere, ebipụtala akụkọ 12715. Maka ntụnyere, maka dum 2018 - 15904. N'ozuzu, a otutu - nke a bụ banyere 43 isiokwu kwa ụbọchị (na nke a bụ nanị na a mma rating; ole ngụkọta isiokwu na-ebudatara na-aga adịghị mma ma ọ bụ na-ehichapụ, otu onye nwere ike maa naanị. ma ọ bụ na-atụle nke ọma site na oghere dị n'etiti ihe nchọpụta).

Ka anyị họrọ mpaghara ndị dị mkpa na dataset. Dịka metrik, anyị ga-eji ọnụọgụ nlele, nkọwa, ụkpụrụ ọkwa na ọnụọgụ ibe edokọbara.

def to_float(s):
    # "bookmarks:22" => 22.0
    num = ''.join(i for i in s if i.isdigit())
    return float(num)

def to_int(s):
    # "bookmarks:22" => 22
    num = ''.join(i for i in s if i.isdigit())
    return int(num)

def to_date(dt):
    return dt.date() 

date = dates.map(to_date, na_action=None)
views = df["views"].map(to_int, na_action=None)
bookmarks = df["bookmarks"].map(to_int, na_action=None)
votes = df["votes"].map(to_float, na_action=None)
votes_up = df["up"].map(to_float, na_action=None)
votes_down = df["down"].map(to_float, na_action=None)
comments = df["comments"].map(to_int, na_action=None)

df['date'] = date
df['views'] = views
df['votes'] = votes
df['bookmarks'] = bookmarks
df['up'] = votes_up
df['down'] = votes_down

Ugbu a agbakwunyela data na dataset ma anyị nwere ike iji ya. Ka anyị na-achịkọta data n'ụbọchị wee were nkezi ụkpụrụ.

g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.median().reset_index()
grouped['counts'] = days_count['counts']
counts_per_day = grouped['counts'].values
counts_per_day_avg = grouped['counts'].rolling(window=20).mean()
view_per_day = grouped['views'].values
view_per_day_avg = grouped['views'].rolling(window=20).mean()
votes_per_day = grouped['votes'].values
votes_per_day_avg = grouped['votes'].rolling(window=20).mean()
bookmarks_per_day = grouped['bookmarks'].values
bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean()

Ugbu a akụkụ na-adọrọ mmasị bụ na anyị nwere ike ile anya na eserese.

Ka anyị leba anya n'ọnụọgụ akwụkwọ na Habré na 2019.

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = (16, 8)
fig, ax = plt.subplots()

plt.bar(year_days, counts_per_day, label='Articles/day')
plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day')
plt.xticks(rotation=45)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y"))  
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.legend(loc='best')
plt.tight_layout()
plt.show()

Ihe si na ya pụta na-adọrọ mmasị. Dị ka ị na-ahụ, Habr abụrụla ntakịrị "soseji" n'ime afọ. Amaghị m ihe kpatara ya.

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

Maka ntụnyere, 2018 na-ele anya ntakịrị nro:

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

N'ozuzu, ahụghị m mbelata ọ bụla dị egwu na ọnụ ọgụgụ akụkọ ebipụtara na 2019 na eserese ahụ. Ọzọkwa, n'ụzọ megidere nke ahụ, o yiri ka ọ na-abawanye ntakịrị kemgbe oge okpomọkụ.

Ma eserese abụọ na-esote na-akụda m ntakịrị.

Nkezi ọnụọgụ nlele kwa edemede:

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

Nkezi ọkwa kwa edemede:

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

Dịka ị pụrụ ịhụ, nkezi ọnụ ọgụgụ echiche na-ebelata ntakịrị n'ime afọ. Enwere ike ịkọwa nke a site n'eziokwu ahụ bụ na e depụtabeghị isiokwu ọhụrụ site na engines ọchụchọ, a naghị ahụkwa ha ọtụtụ mgbe. Mana mbelata nke ọkwa ọkwa n'otu akụkọ bụ nke a na-apụghị ịghọta aghọta. Mmetụta ahụ bụ na ndị na-agụ akwụkwọ enweghị oge iji lelee ọtụtụ isiokwu ma ọ bụ na-adịghị ege ntị na ọkwa. Site n'echiche nke mmemme ụgwọ ọrụ onye edemede, omume a adịghị mma.

Site n'ụzọ, nke a emeghị na 2018, na usoro ihe omume bụ karịa ma ọ bụ obere ọbụna.

Habrastatistics: ka Habr si ebi ndụ na-enweghị geektimes

N'ozuzu, ndị nwe akụrụngwa nwere ihe ha ga-eche.

Ma, ka anyị ghara ikwu banyere ihe mwute. N'ozuzu, anyị nwere ike ịsị na Habr "lanarị" n'oge okpomọkụ na-agbanwe nke ọma, na ọnụ ọgụgụ nke isiokwu ndị dị na saịtị ahụ ebelataghị.

Ntụle

Ugbu a, n'ezie, rating. Ekele dịrị ndị batara na ya. Ka m chetara gị ọzọ na ọkwa ahụ bụ ihe na-akwadoghị, ma eleghị anya, ihe ọ bụla tụfuru m, ma ọ bụrụ na ụfọdụ isiokwu kwesịrị ịdị ebe a, mana ọ bụghị, dee, m ga-eji aka tinye ya. Dị ka ọkwa, m na-eji metrik gbakọọ, nke m chere na ọ bụ ihe na-atọ ụtọ.

Akụkọ kacha elu site na ọnụọgụ nlele

Edemede ndị kachasị elu site n'ịkwado oke nlele

Edemede kacha elu site na nzaghachi na oke nlele

Edemede kacha arụrịta ụka

Edemede kachasị site na ọkwa

Akụkọ kachasị elu site na ọnụọgụ ibe edokọbara

N'elu site na oke nke ibe edokọbara na nlele

Akụkọ kacha elu site na ọnụ ọgụgụ nke kwuru

Na n'ikpeazụ, nke ikpeazụ Antitop site na ọnụ ọgụgụ nke enweghị mmasị

Ugh. Enwere m nhọrọ ole na ole na-adọrọ mmasị, mana agaghị m agwụ ndị na-agụ ya.

nkwubi

Mgbe m na-arụ ọkwa ahụ, etinyere m uche na isi ihe abụọ yiri ihe na-adọrọ mmasị.

Nke mbụ, 60% nke elu bụ akụkọ nke ụdị "geektimes". Ma ọ ga-adị ole na ole n'ime ha n'afọ ọzọ, na ihe Habr ga-adị ka na-enweghị akụkọ banyere biya, ohere, ọgwụ, wdg, amaghị m. N'ezie, ndị na-agụ ga-atụfu ihe. Ka ahụ.

Nke abuo, ibe edokọbara n'elu tụgharịrị bụrụ nke dị elu na-atụghị anya ya. Nke a bụ ihe nghọta nke uche; mkpa, mgbe ahụ, a ga-agbakwunye ya na ibe edokọbara gị. Na ebe a bụ kpomkwem kasị ukwuu ịta nke bara uru na oké njọ isiokwu. Echere m na ndị nwe saịtị ahụ kwesịrị iche echiche site na njikọ dị n'etiti ọnụọgụ ibe edokọbara na mmemme ụgwọ ọrụ ma ọ bụrụ na ha chọrọ ịbawanye ụdị akụkọ a na Habré.

Ihe dị ka nke a. Enwere m olileanya na ọ bụ ihe ọmụma.

Ndepụta nke isiokwu tụgharịrị dị ogologo, nke ọma, ọ ga-abụ na ọ ka mma. Obi ụtọ ịgụ onye ọ bụla.

isi: www.habr.com

Tinye a comment