In [ ]:
%matplotlib inline
import pandas as pd
import seaborn as sns
import numpy as np
In [ ]:
df = pd.read_csv('data.csv')
In [ ]:
list(df.columns.values)
In [ ]:
# Data cleaning
df.loc[df.AnzahlSexualpartnerAllgemein > 10000, 'AnzahlSexualpartnerAllgemein'] = float('inf')
df.loc[df.AnzahlSexualpartnerGreifswald > 10000, 'AnzahlSexualpartnerGreifswald'] = float('inf')
df.loc[df.AnzahlStechmuecken > 10000, 'AnzahlStechmuecken'] = float('inf')
df.loc[df.Groesse < 20, 'Groesse'] = None
# sorted(df[['LaengeFreundschaft']].values)
df.loc[df.LaengeFreundschaft > 100, ['Alter', 'LaengeFreundschaft']] = None
In [ ]:
grouped = df.groupby('Geschlecht')
grouped['EigeneAttraktivitaet'].hist(alpha=0.4, position=0, bins=range(1, 11))
In [ ]:
df.loc[(df.Geschlecht == 'Weiblich') & (df.AnzahlStechmuecken < 100), 'AnzahlStechmuecken'].plot.hist()
df.loc[(df.Geschlecht == 'Männlich') & (df.AnzahlStechmuecken < 100), 'AnzahlStechmuecken'].plot.hist()
In [ ]:
df.loc[(df.Geschlecht == 'Weiblich') & (df.AnzahlStechmuecken < 100), 'AnzahlStechmuecken'].plot.hist(alpha=0.5)
df.loc[(df.Geschlecht == 'Männlich') & (df.AnzahlStechmuecken < 100), 'AnzahlStechmuecken'].plot.hist(alpha=0.5)
In [ ]:
df.loc[df.Geschlecht == 'Männlich', 'EigeneAttraktivitaet'].plot.hist(bins=range(1, 11),alpha=0.5)
In [ ]:
# df.loc['EigeneAttraktivitaet'].plot.hist()
df.loc[df.Geschlecht == 'Weiblich', 'EigeneAttraktivitaet'].plot.hist(bins=range(1, 11), alpha=0.5)
In [ ]:
categorial = ['Geschlecht',
'Studienfach',
'AG',
'ZungeRollen',
'BeziehungsstatusVorher',
'BeziehungsstatusNachher',
'Tinder',
'GrundSpaetInsBett',
'BesterAbendvortrag',
'Transportmittel',
'Gendern',
'PlutoPlanet',
'ArtikelButter',
'ArtikelNutella',
'NutellaMitButter',
'SchoensterDialekt',
'PfluegenOderNicht',
'BestaussehenderMann',
'BestaussehendeFrau',
'WegZumStipendium',
'Fu\xc3\x9fnoten',
'BeziehungMitStifti',
'InEinemWort']
numeric_cols = ['Alter',
'AnzahlSommerakademien',
'LaengeAnfahrt',
'AnzahlSprachen',
'AnzahlGeschwister',
'AnzahlVornamen',
'Groesse',
'AnzahlStaatsbuergerschaften',
'LaengeFreundschaft',
'AnzahlPokemon',
'MengeKaffee',
'AnzahlSexualpartnerAllgemein',
'AnzahlSexualpartnerGreifswald',
'StundenSport',
'AnzahlBuecher',
'AnzahlFacebookfreunde',
'DurchschnittAbi',
'DurchschnittAktuell',
'QuersummePIN',
'MengeBargeld',
'AnzahlZimmergenossen',
'MengeSchlaf',
'DauerVorbereitungZuhause',
'DauerVorbereitungGreifswald',
'GeldMensakarte',
'AnzahlAbendvortraegeGeschwaenzt',
'AnzahlFremdeBetten',
'ZeitAufWasser',
'AnzahlStechmuecken',
'EigeneAttraktivitaet',]
print("Datenpunkte: %i" % len(df))
for val in numeric_cols:
if val in ['AnzahlSexualpartnerAllgemein', 'AnzahlSexualpartnerGreifswald', 'AnzahlStechmuecken']:
continue
print("{0:>32}: {1:>06.2f} (Range: {2:>4.2f} - {3:>4.2f})\t Mean: {4:>5.2f}".format(
val,
float(df[[val]].median()),
float(df[[val]].min()),
float(df[[val]].max()),
float(df[[val]].mean())))
print("{0:>32}, Group: abs min (AG {1: .0f}) abs max (AG {2: .0f}), mean min (AG {3: .0f}), mean max (AG {4: .0f})".format(
val,
df.groupby('AG')[val].min().idxmin(),
df.groupby('AG')[val].max().idxmax(),
df.groupby('AG')[val].mean().idxmin(),
df.groupby('AG')[val].mean().idxmax()))
print("{0:>32}, Group: median min={1} (AG {2: .0f}), median max={3} (AG {4: .0f}), sum={5} (AG {6: .0f})".format(
val,
df.groupby('AG')[val].median().min(),
df.groupby('AG')[val].median().idxmin(),
df.groupby('AG')[val].median().max(),
df.groupby('AG')[val].median().idxmax(),
df.groupby('AG')[val].sum().max(),
df.groupby('AG')[val].sum().idxmax()))
val_min = int(min(df[val]))
val_max = int(min(10000, max(df[val])))
# df[[val]].plot.hist(bins=np.linspace(minimum, maximum, 10), alpha=0.5, normed=True)
#df.loc[df.Geschlecht == 'Weiblich', val].plot.hist(bins=np.linspace(minimum, maximum, 10), alpha=0.5, normed=True)
# df.loc[df.Geschlecht == 'Männlich', val].plot.hist(bins=np.linspace(minimum, maximum, 10), alpha=0.5, normed=True)
df.groupby('AG')['ZungeRollen'].describe()
In [ ]:
# TODO
df.groupby('AG')["StundenSport"].mean()
In [ ]:
df.groupby('Geschlecht').describe()
In [ ]:
df[df.AG == 5]
In [ ]:
df[(df.Geschlecht == "Weiblich") & (df.PlutoPlanet == 'Ist das nicht der Hund von Goofy?')]
In [ ]:
gb = df[(df.Geschlecht == "Weiblich")].groupby("PlutoPlanet")
gb.sum()
In [ ]:
gb = df.groupby("AG")
gb.sum()[[""]]
gb.sum()
In [ ]:
gb.groups
In [ ]: