In [1]:
%pylab inline
In [2]:
import pandas as pd
In [3]:
pd.version.version
Out[3]:
In [4]:
np.version.version
Out[4]:
In [5]:
pd.set_option("max_rows", 100)
pd.set_option("max_columns", 25)
np.set_printoptions(linewidth=200)
figsize(12,9)
In [6]:
from IPython.display import HTML
HTML('<iframe src="http://botliga.de/datenquellen" width=1200 height=400></iframe>')
Out[6]:
In [7]:
#!curl -O http://dl.dropbox.com/u/90393/botliga/ergebnisse-1963-2010.zip
#!unzip -qq ergebnisse-*.zip
#cd tippkick/
#!psql -q < tippkick.sql
In [8]:
import psycopg2
conn = psycopg2.connect("dbname=tippkick")
In [9]:
import pandas.io.sql as psql
In [10]:
vereine = psql.frame_query('select * from vereine', con=conn)
vereine.head()
Out[10]:
In [11]:
spiele = psql.frame_query('select * from spiele', con=conn)
spiele.head()
Out[11]:
In [12]:
temp = pd.merge(spiele, vereine, left_on="heim", right_on="id")
temp.head()
Out[12]:
In [13]:
temp2 = pd.merge(temp, vereine, left_on="gast", right_on="id")
temp2.head()
Out[13]:
In [14]:
df = temp2["name_y name_x saison tore_heim tore_gast spieltag zeit".split()]
df.columns = "heim gast saison tore_heim tore_gast spieltag zeit".split()
df
Out[14]:
In [15]:
df.set_index("zeit")
Out[15]:
In [16]:
df["tore"] = df["tore_heim"] + df["tore_gast"]
In [17]:
saison_spieltag = df.set_index(["saison", "spieltag"])
In [18]:
print saison_spieltag.head().to_string()
In [19]:
grouped = saison_spieltag["tore"].groupby(level=0)
In [20]:
grouped.sum().plot(kind="bar")
Out[20]:
In [21]:
df[df["tore"] > 10].sort("tore", ascending=False)
Out[21]:
In [22]:
from IPython.display import YouTubeVideo
YouTubeVideo('VfvWX4bHSb0')
Out[22]:
In [23]:
df.ix[2558]
Out[23]:
In [24]:
df.ix[0]["zeit"].hour
Out[24]:
In [25]:
df["uhrzeit"]=df["zeit"].apply(lambda x: str(x).split()[1])
In [26]:
startzeiten = df["uhrzeit"].value_counts()
In [27]:
startzeiten
Out[27]:
In [28]:
startzeiten.plot(kind="barh")
Out[28]:
In [29]:
df[df["uhrzeit"] == "19:30:00"].sort("saison", ascending=False).head(10)
Out[29]: