<jupyter_start><jupyter_text>Analiza rozkładu zmiennych kategorycznych Niektóre zmienne kategoryczne niewiele wnoszą do naszych danych. W momencie, kiedy % występowania pewnej wartości spada poniżej pewnego poziomu, powinniśmy ją usunąć, żeby uniknąć przeuczenia pod kątem tej zmiennej.Kandydaci do usunięcia po analizie zmiennych kategorycznych:- Dx:CINKandydaci do dodania dodatkowej kategorii na brak danych (dane ~0 powinny też lądować w tej kategorii):- STDs:cervical condylomatosis- STDs:vaginal condylomatosis- STDs:vulvo-perineal condylomatosis- STDs:syphilis- STDs:pelvic inflammatory disease- STDs:genital herpes- STDs:molluscum contagiosum- STDs:AIDS- STDs:HIV- STDs:Hepatitis B- STDs:HPV- STDs (number)- STDs: Number of diagnosis<jupyter_code>def replaceNA(df, column_name, val):
    df[column_name] = df[column_name].fillna(val)

def replaceInColumn(df, column_name, src, dst):
    df[column_name] = df[column_name].replace(to_replace=src, value=dst)

to_replace = [
    'STDs:cervical condylomatosis',
    'STDs:vaginal condylomatosis',
    'STDs:vulvo-perineal condylomatosis',
    'STDs:syphilis',
    'STDs:pelvic inflammatory disease',
    'STDs:genital herpes',
    'STDs:molluscum contagiosum',
    'STDs:AIDS',
    'STDs:HIV',
    'STDs:Hepatitis B',
    'STDs:HPV']

for col in to_replace:
    replaceNA(data, col, 1)
replaceNA(data, 'STDs (number)', -1)
replaceNA(data, 'STDs: Number of diagnosis', -1)
replaceInColumn(data, 'STDs (number)', 4, 3)
replaceInColumn(data, 'STDs: Number of diagnosis', [2,3], 1)
fig, axes = plt.subplots(nrows=13, ncols=2, figsize=(12, 36))
axes = axes.flatten()
total = len(data)
for idx, ax in enumerate(axes):
    plt.sca(ax)
    ax = sns.countplot(x = categorical[idx], data=data)
    for p in ax.patches:
        height = p.get_height()
        ax.text(p.get_x()+p.get_width()/2.,
            height + 3,
            '{:3.0f}%'.format(100 * height/total),
            ha="center")
sns.despine()
plt.tight_layout()
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12524850894632206, 'fraction_numerical': 0.01143141153081511, 'mean_word_length': 4.735042735042735, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, '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': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '480588', 'license': 'Apache-2.0', 'n_tokens_mistral': 859, 'n_tokens_neox': 795, 'n_words': 176, 'path': 'Projekty/Projekt1/Grupa3/StaronSzypulaUrbala/Urbala_1_2.ipynb', 'repo_name': 'niladrem/2020L-WUM', 'size': '2012'}