<jupyter_start><jupyter_text>Projektna naloga (prog1) Najboljše knjige 21. stoletjaAnaliziral bom prvih 2000 knjig (Best Books of the 21st Century) glede na število glasov na strani**[goodreads](https://www.goodreads.com/list/show/7.Best_Books_of_the_21st_Century)**.**Za vsako knjigo sem/bom zajel:*** naslov* zaporedno številko* id* avtorja* oceno* goodreads "score"* število glasov**Delovne hipoteze:*** Kdo so avtorji z najbolšimi ocenami?* Najbolj rodoviti avtorji?* ...<jupyter_code>import pandas as pd

knjige = pd.read_csv('obdelani-podatki/knjige.csv', index_col='id')
kn = pd.read_csv('obdelani-podatki/knjige.csv')
avt = pd.read_csv('obdelani-podatki/avtorji.csv', index_col='id')

pd.options.display.min_rows = 10
pd.options.display.max_rows = 10<jupyter_output><empty_output><jupyter_text>Najbolj popularne knjige  Knjige razvrščene padajoče glede na število glasov:<jupyter_code>knjige[['zap_st', 'naslov', 'avtor', 'ocena', 'st_glasov']].sort_values('st_glasov', ascending=False).head(20)<jupyter_output><empty_output><jupyter_text>Najbolj popularne knjige (merilo je 'score')Tu se vrstni red ujema z zaporedno številko, saj je je to merilo na strani [goodreads](https://www.goodreads.com).Gledamo samo knjige z več kot 100000 glasovi, saj se s tem izognemo "družinskemu glasovanju".<jupyter_code>knjige[knjige.st_glasov > 100000].sort_values('score', ascending=False).head(20)<jupyter_output><empty_output><jupyter_text>"Povezava" med številom glasov in scoreTu opazimo, da je "score" dokaj sorazmeren s številom glasov, opazimo pa tudi da nekaj knjig izstopa.<jupyter_code>%matplotlib inline
knjige.plot.scatter('st_glasov', 'score')<jupyter_output><empty_output><jupyter_text>Avtorji  Najbolj plodoviti avtorji v 21.stoletju Poglejmo si najbolj plodovite avtorje 21.stoletja, kjer mora imeti posamezna knjiga vsaj 100000 glasov.<jupyter_code>avtorji = knjige[knjige.st_glasov > 100000].groupby('avtor')
avtorji.size().sort_values(ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Grafični prikaz plodovitih avtorjev<jupyter_code>avtorji.size().sort_values(ascending=False).head(10).plot.bar(x='avtor', y='knjige')<jupyter_output><empty_output><jupyter_text>Najbolje ocenjeni avtorji  Povprečna ocena avtorjevih knjig<jupyter_code>avtorji.ocena.mean().sort_values(ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Najbolša ocena knjige posameznih avtorjev<jupyter_code>avtorji.ocena.max().sort_values(ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Najbolj popularni avtorji<jupyter_code>avtorji.score.mean().sort_values(ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Grafični prikaz popularnosti avtorjev<jupyter_code>avtorji.score.mean().sort_values(ascending=False).head(10).plot.bar(x='avtor', y='popularnost')<jupyter_output><empty_output><jupyter_text>Najbolj glasovani avtorjiTu si bomo pogledali, kateri avtorji so prejeli največ glasov, za napisane knjige.<jupyter_code>avtorji.st_glasov.mean().sort_values(ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Grafični prikaz najbolj glasovanih avtorjev<jupyter_code>avtorji.st_glasov.mean().sort_values(ascending=False).head(10).plot.bar(x='avtor', y='število glasov')<jupyter_output><empty_output><jupyter_text>Priprava za analizoTu bomo v tabelo knjige spravili še stolpec število nadaljevanj.<jupyter_code>def num_sequels():
    '''Koliko nadaljevanj so avtorji začeli pisati v 21.stoletju'''
    dict = {}
    for i in range(2000):
        if ", #1" in knjige.iloc[i].naslov:
            a = knjige.iloc[i].avtor
            if a in dict:
                dict[a] += 1
            else:
                dict[a] = 1
        else:
            continue
    return dict
def pomozna():
    dict = {}
    for i in range(2000):
        avtor = knjige.iloc[i].avtor
        dict[i] = avtor
    return dict
po = pomozna()
ns = num_sequels()
konc = {}
for k in po:
    if po[k] in ns:
        konc[k] = ns[po[k]]
    else:
        konc[k] = 0
df = pd.DataFrame.from_dict(konc, orient='index', columns=['st_nadaljevanj'])
kn['st_nadaljevanj'] = df.st_nadaljevanj
kn.sort_values('st_nadaljevanj', ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Avtorji, ki so začeli pisati največ nadaljevanj v 21.stoletjuOglejmo si koliko nadaljevanj je začel pisati posamezen avtor. Sepravi tu opustimo nadaljevanja, ki so se začela pred letom 2000 (npr. prvi del Harry-<NAME> je izšel pred 2000 sedmi del pa v 21.stoletju a ga ne štejemo k naši analizi.<jupyter_code>st_nad = pd.DataFrame.from_dict(ns, orient='index', columns=['st_nadaljevanj'])
st_nad.index.name = 'avtor'
st_nad.sort_values('st_nadaljevanj', ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>Grafični prikaz zgornjega<jupyter_code>st_nad.st_nadaljevanj.sort_values(ascending=False).head(10).plot.bar(x='avtor', y='st_nadaljevanj')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12271434376269809, 'fraction_numerical': 0.01950426655830963, 'mean_word_length': 6.527522935779817, 'pattern_counts': {'":': 0, '<': 62, '<?xml version=': 0, '>': 64, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '15', 'dir': 'jupyter-structured-clean-dedup', 'id': '307848', 'license': 'MIT', 'n_tokens_mistral': 2106, 'n_tokens_neox': 2037, 'n_words': 339, 'path': 'AnalizaPodatkov.ipynb', 'repo_name': 'gapro8/Projektna_naloga_prog1', 'size': '4925'}