Beef Jerky made in Austria

Wer schon mal in den USA war kennt es wahrscheinlich – das dünne, getrocknete Rindfleisch zum Knabbern, von dem man nicht genug bekommen kann. Da wir jedes Jahr zur Super Bowl Party irgendwelche Snacks mitnehmen (einmal gab es Maple-Bacon Cookies, zweimal schon Pretzel Bites mit Käse-Speck-Bier Dip), haben wir uns auch einmal an Beef Jerky versucht. Der erste Versuch ist gut gelungen, leider haben wir das Rezept dann lange nicht mehr gefunden. Nachdem es dann wieder aufgetaucht ist, habe ich letztes Jahr kurz vor Weihnachten eine weitere Charge erstellt.

Neben verschiedenen Gewürzen braucht man für Beef Jerky eine Menge Rindfleisch, da durch’s lange Trocknen nur ca. ein Drittel vom Gewicht übrigt bleibt. Unsere Internetrecherche ergab, dass Oberkeule, die auch für Rouladen verwendet wird, gut geeignet ist.

Würzung

Zum Würzen haben wir beide Male dieselbe Marinade, basierend auf diesem Rezept, verwendet (für ca. 1,5 kg Fleisch).

  • 1 TL Knoblauchpulver
  • 2 EL Zucker
  • 4 EL Ketchup
  • 150 ml Soya
  • 3 TL Salz
  • Pfeffer
  • 150 ml Worcestersauce
  • 1 Schuss Liquid Smoke

Wenn ihr nicht alle Gewürze zu Hause habt oder etwas ausprobieren wollt, könnt ihr gerne auch variieren. Ich kann mir gut vorstellen, dass man den Zucker durch Ahornsirup oder Honig ersetzen kann.

Das dünn, gegen die Faser geschnittene Fleisch, wird in dieser Marinade für mehrere Stunden eingelegt (im Kühlschrank). Zusätzlich haben wir manche der Stücke nach dem Marinieren mit weiteren Gewürzen oder Saucen gewürzt.

Dabei könnt ihr kreativ werden und Barbeque-Gewürzmischungen, Grillsaucen, Pfeffer, Sweet Chili Sauce, … verwenden. Bisher haben sich bei uns die Kombinationen Marinade + schwarzer Pfeffer und Marinade + Sweet Chili Sauce als Favoriten herausgestellt.

Charge 1 (Februar 2018)

Charge 2 (Dezember 2019)

Den Lachs habe ich nur ordentlich gesalzen. Das Ergebnis hat zwar gut geschmeckt aber die Streifen sind leider sehr leicht auseinander gebrochen (vielleicht hätte ich den Fisch in eine andere Richtung schneiden sollen).

Trocknen

Nach dem Marinieren und Würzen beginnt die Trocknungsphase. Wir machen das im Backrohr, sollte aber genauso gut in einem Dörrautomaten funktionieren. Im Backrohr reicht eine Temperatur von 50°C (Heißluft), da wir das Fleisch langsam trocknen möchten.

Wie ihr an den Fotos sehen könnt, haben wir das Fleisch beim ersten Versuch (und auch zu Beginn des zweiten Versuchs) über den Rost gehängt um so mehr Fleisch unterbringen zu können. Dabei wird das Fleisch aber relativ ungleichmäßig getrocknet. Beim zweiten Versuch habe ich das Fleisch nach einer Weile auf dem Rost ausgebreitet um das Jerky gleichmäßiger zu trocknen.

Beide Male war das Fleisch ca. 6-7 Stunden im Rohr aber ich glaube wenn man es von Anfang an am Rost (oder auf 2 Etagen) auflegt, ist das Jerky in 4-5 Stunden trocken.

Nach dem Trocknen sollte man mit dem Verzehr noch ein paar Tage warten, aber wenn man es gar nicht mehr erwarten kann, darf man natürlich schon eine Kostprobe nehmen 🙂 Das Jerky hält sich in einer luftdichten Dose über Monate, wir haben jetzt noch ein paar Stücke, die wir im Dezember gemacht haben. Wenn es zu fest/hart wird, einfach für ein paar Tage ein frisches Stück Brot mit in den Behälter legen, dann wird das Jerky wieder weicher.

Und, wie würzt ihr euer Jerky?

Maple-Bacon Cookies

Heute ist Super Bowl! Um das Event möglichst amerikanisch zu gestalten muss man irgendetwas Ausgefallenes essen. Dieses Jahr haben wir uns für Maple-Bacon Cookies entschieden.

Super Bowl Party 2016: Pretzel Bites mit Speck-Bier-Käse-Dip

Zutaten

Ergibt ca. 32 Kekse.

7 Streifen Bauchspeck
Ein paar EL Ahornsirup1 cup (ca. 250 g) brauner Zucker
1 Pkg. Vanillezucker
115 g Butter
1 Ei
100 ml Ahornsirup

mind. 400 g Mehl
1 TL Salz
1/2-1 Pkg. Backpulver

Zutaten für die Maple-Bacon Cookies.
Unsere Zutaten.

Das Rezept, das wir im Internet gefunden haben, haben wir ein bisschen angepasst. Laut der Zutatenliste benötigt man nur 2 cups Mehl, was ca. 300 g entspricht. Allerdings ist das definitiv zu wenig und wir haben dann noch einiges dazu gegeben, sonst fließen sie zu weit auseinander wie ihr den Fotos weiter unten entnehmen könnt 😉

Maple-Bacon Cookies

Backrohr auf 175°C vorheizen.

Der Speck

Die Speckstreifen werden mit Ahornsirup bestrichen und dann knusprig gebraten oder gebacken. Am besten werden die Speckstreifen, wenn man sie ins Backrohr gibt. Damit der Ahornsirup nicht überall hinfließt und das ganze Backrohr klebrig wird, haben wir ein Backblech mit Backpapier belegt und auf die unterste Stufe geschoben. Die Speckstreifen werden dann auf das Gitter gelegt und mind. 10 Minuten gebacken bis sie ganz knusprig sind. Anschließend werden sie in kleine Stücke oder Streifen geschnitten.

Speck für die Maple-Bacon Cookies.
Speck für die Maple-Bacon Cookies.

Speck im Backrohr.
Der Speck muss schön knusprig werden!

Super knuspriger Speck!
Super knuspriger Speck!

Knuspriger Speck in Stückchen geschnitten.
Speck-Brösel 😉

Der Keksteig

In einer großen Schüssel den braunen Zucker mit dem Butter mixen bis die Mischung flaumig wird. Damit das einfacher geht haben wir den Butter vorher etwas erwärmt. Dann wird das Ei ebenfalls mit dem Mixer dazu gerührt und zu guter Letzt der Ahornsirup.

In einer anderen Schüssel werden Mehl, Backpulver und Salz gut vermischt.

Gib nun die Mehlmischung auf dreimal zur Ei-Zuckermischung. Die hebe ich dann immer mit einem Löffel unter und nicht mit dem Mixer. Anschließend kommt der Speck dazu.

Jetzt muss der Teig eine Stunde rasten.

Keksteig in einer Schüssel.
Der Keksteig schmeckt sehr gut!

Speck im Keksteig.
Der Speck kommt auch in den Teig.

Die erste Charge

Das Backrohr nun noch einmal auf 175°C vorheizen.

Der Teig kam mir nach dem Rasten etwas flüßig vor, weshalb wir gleich noch etwas Mehl dazu gaben. Im Rezept steht zwar geschrieben, dass man die Kugeln mit den Händen formen soll, aber das war mit dieser Konsistenz nicht möglich. Deswegen habe ich zwei Löffel verwendet um etwa 1 EL Teig zu einer Kugel zu formen.

Anschließend ca. 12-15 Minuten backen, bis der Rand der Kekse leicht braun wird. Danach noch etwa 2 Minuten auf dem Blech lassen. Dann kannst du sie auf einem Teller oder in einer Keksdose aufbewahren.

Kugeln geformt aus dem Keksteig.
Kekskugeln für die erste Charge.

Hier forme ich die Maple-Bacon Cookies.
Am einfachsten geht’s mit zwei Löffeln.

Patrick mit unseren ersten Keksen.
Uups! Die sind etwas groß und flach geworden 😉

So werden sie schön

Nachdem die ersten Kekse aus dem Rohr kamen, haben wir schon gesehen, dass der Teig noch immer viel zu flüßig war. Wir haben nochmal Mehl dazu gegeben bis wir mit der Festigkeit zufrieden waren. Mit den Händen formen war noch immer keine Option aber mit dem festeren Teig war es um einiges leichter. Für die weiteren Bleche habe ich dann auch viel weniger Teig genommen, etwa einen halben Esslöffel pro Kugel.

Diese Kekse sind dann nicht mehr so extrem auseinander gegangen. Der Geschmack war natürlich bei allen Keksen gleich aber die aus dem festeren Teig sind doch etwas schöner geworden 🙂

Tipp: Viel Platz zwischen den Kugeln lassen, damit sie nicht aneinander kleben! Wir haben nur neun Kekse pro Blech gebacken.

Die Kekskugeln für das zweite Blech.
Jetzt ist der Teig etwas fester.

Hier forme ich die Maple-Bacon Cookies mit zwei Löffeln.
Am einfachsten geht’s mit zwei Löffeln.

Kekse in zwei Keksdosen.
Ready for the big party!

Pretzel Bites mit Speck-Bier-Käse-Dip (Super Bowl Snack)

Am Sonntag vor 2 Wochen war der 50. Super Bowl, das Finale im American Football zwischen den Carolina Panthers und den Denver Broncos. Der Super Bowl ist das größte Sportereignis im Jahr und wird mittlerweile nicht nur vom CBS ausgestrahlt sondern auch von SAT1 und PULS4. Lustiger ist das Event natürlich am CBS, weil man da alle Werbungen sieht (z.B. die Heinz Ketchup Werbung).

Da es üblich ist, während einer Super Bowl Party möglichst viel amerikanisches Zeug zu essen, haben wir einen Super Bowl Snack aus der USA-EssBar von derstandard.at mit der passenden Sauce vorbereitet:

Die Autorin der USA-EssBar Ursula Schersch betreibt auch einen eigenen sehr lesenswerten Blog: Taste of Travel mit Rezepten aus aller Welt.

Zutaten

Pretzel Bites
210 ml lauwarme Milch
2 gestr. TL Zucker
10 g Germ
40 g zerlassene und abgekühlte Butter (ca. 4 ½ EL)
1,5 gestr. TL feines Salz
285 g Mehl
Natronlauge
80 ml Wasser
1 leicht gehäufter TL Natron
Dip
120 g Speck
1 mittlere Zwiebel
1,5 EL Dijon-Senf
165 g Frischkäse
120 ml Bier (nach Geschmack)
250 ml Milch
150 g Cheddar
Salz, Cayenne Pfeffer

Zubereitung des Super Bowl Snacks

Pretzel Bites

Lauwarme Milch, Zucker, Germ, zerlassenen Butter und ein bisschen Mehl zu einem “Gmachtl” verrühren und ein paar Minuten im Warmen gehen lassen.

Das Volumen verdoppelt sich recht schnell. Wenn es soweit ist, Salz und das restliche Mehl dazu geben und zu einem geschmeidigen Teig verarbeiten.

Das Backrohr auf 175°C vorheizen.

Den Teig in 3 bis 4 Teile teilen und jeden Teil so lange rollen und ziehen bis er ungefähr 3 cm Durchmesser hat.

Die Stränge in 3-4 cm lange “Bites” schneiden.

Das Natron in kochend heißem Wasser auflösen (das haben wir anfangs überlesen und probiert das Natron in kaltem Wasser aufzulösen, da kann man ewig rühren :)).

Das Ei verquirlen.

Ei verquirlen.
Ei verquirlen.

Mit einem Pinsel das Natron auf die Pretzel Bites auftragen. Den Vorgang am besten wiederholen.

Die Bites mit Ei bestreichen und anschließend gleich den Sesam darauf streuen, damit er am Ei kleben bleibt bevor es trocknet.

Zum Schluss mit Sesam bestreuen.
Zum Schluss mit Sesam bestreuen.

Die Pretzel Bites anschließend 20-30 Minuten backen, bis sie richtig knusprig und braun werden.

Die knusprigen Pretzel Bites.
Die knusprigen Pretzel Bites.

Speck-Bier-Käse-Dip

Als erstes werden die Zwiebel und der Speck würfelig geschnitten. Für die Sauce wird außerdem Cheddar benötigt, den könnt ihr aber auch durch Edamer ersetzen.

Cheddar reiben. Ich habe den Cheddar zuerst ganz fein gerieben aber das dauert ewig. Da er sowieso schmilzt kann man ihn auch gröber reiben, bzw. auch größere Brösel (das ganze Stück ist nach und nach zerfallen) dazu geben.

Cheddar reiben.
Cheddar reiben.

Die Zwiebeln in einem Topf anbraten bis sie golden werden. Speck dazu geben und ebenfalls anbraten.

Senf einrühren. Mit Bier ablöschen. Bei hoher Hitze kochen lassen bis fast die ganze Flüssigkeit verdampft ist.

Milch einrühren.

Frischkäse dazu geben, rühren und schmelzen lassen. Jetzt sollte die Konsistenz cremig werden. Das es uns noch zu flüssig war, haben wir die Masse noch ein paar Minuten köcheln lassen. (Wenn ihr die Sauce nicht sofort verspeisen wollt sondern wo mithin nehmt und wieder aufwärmt, kann sie auch noch ein bisschen flüssig sein. Sie wird dann noch fester.)

Man kann nach Bedarf salzen und pfeffern, aber die Sauce hat auch so ausreichend Geschmack.

Den geriebenen Cheddar dazu geben.

Cheddar dazu geben.
Cheddar dazu geben.

Solange umrühren, bis sich der ganze Cheddar aufgelöst hat und die Sauce schön käsig wird.

Mit den frisch gebackenen Pretzel Bites servieren! Die Sauce eignet sich aber auch dazu sie wieder aufzuwärmen, unter Umständen muss man dann wieder ein bisschen Milch dazu geben.

Die Sauce wird schön cremig.
Die Sauce wird schön cremig.

Weitere Super Bowl-Snacks

Da wir den Superbowl mit mehreren anderen Leuten gesehen haben, gab’s natürlich auch noch andere Dinge zum Essen und auch von anderen Freunden haben wir Anregungen bekommen:

  • Chicken Wings
  • Burger mit Sauerkraut (unglaublich gut!)
  • Eat The Ball (eine österreichische Firma!): Gebäck zum Auftauen in Form von Fußbällen, Footballs, Pucks, … Die Pucks eignen sich am besten um Burger daraus zu machen
  • Chips mit allen möglichen abartigen Geschmacksrichtungen
  • Tabasko – Pop Corn
  • Essig Gurkerl, Sandwich Gurken, Puszta Salat, …
  • Die eine oder andere Barbecue Sauce darf natürlich auch nicht fehlen…

Mahlzeit!
Mahlzeit!

Use rvest to scrape NFL weather data

If you are following my progress in the Data Science Learning Club you might know that I am using NFL data for the tasks. For predicting sports events I think it is not only important to have statistics about the players, teams and previous games but also about the weather. From when I was a soccer player I can tell you that it makes quite a difference whether it is snowing, has 30°C or more or the weather is moderate. One could argue that the weather is influence both teams and therefore no one has an advantage, but I think that everyone responds differently to different conditions.

The data source

After only searching for a short time, I found a website called NFLWeather which provides weather forecasts for every match back to 2009.

Web scraping: rvest

I have been looking into web scraping before, but it seemed like a dirty and cumbersome task to me.

Since I made the experience that almost everything related to data has been implemented in a nice way by someone in R I wanted to give it another try. I found the package rvest by @hadleywickham, which is always a very good sign with respect to R package quality.

The code

Checking out their archive I found the structure of their links and that they go back until 2009. So I wrote this method to parse the page, find the first table (there is only one), and convert it to a data.frame:

load_weather<-function(year, week) {
  base_url<-"http://nflweather.com/week/"
  if (year == 2010) { # necessary because of different file naming
    start_url<-paste0(base_url, year, "/", week, "-2/")
  } else {
    start_url<-paste0(base_url, year, "/", week, "/")
  }
  if (year == 2013 && week == "pro-bowl") {
    return (NULL)
  }
  tryCatch ({  
    page<-html(start_url, encoding="ISO-8859-1") 
    table% html_nodes("table")  %>% .[[1]] %>% html_table()
    table<-cbind("Year"=year, "Week"=week, table[,c("Away", "Home", "Forecast", "Extended Forecast", "Wind")])
    return(table)
  }, 
  
  error = function(e) { 
    print(paste(e, "Year", y, "Week", w))
    return(NULL)
  }).
}

The function got a lot longer than anticipated, but let me explain it:

  • Parameters: year and week
  • start_url is built from the base_url that’s always the same and the two parameters. The only difference is for year 2010, where for no apparent reason “-2” is added to each link.
  • We have to skip the pro-bowl week in 2013, because that page does not exist.
  • Then we have some error handling because other pages might not exist or might become unavailable.
  • Line 13: I parse the page (actually html is deprecated and read_html should be used but I currently have an older version of R running).
  • Line 14: I use the magrittr pipe operator as used in the package examples, but this can also be done without it. Just see the code below.
  • Line 15: I create a data.frame only selecting the columns I need and by adding the Year and Week information to each row.
html_table(html_nodes(page, "table")[[1]])

This is how I call the code to build one large data.frame:

weather_data<-data.frame("Year"=integer(0), "Week"=character(0), "Away"=character(0), "Home"=character(0), "Forecast"=character(0), "Extended Forecast"=character(0), "Wind"=character(0))
for (y in years) {
  for (w in weeks) {
    weather_data<-rbind(weather_data, load_weather(y, w))
  }
}

The output

The output is a data.frame with 2832 rows just like the ones in the screenshot.

Screen Shot 2016-01-07 at 14.48.14

Download complete code

The complete source can be downloaded below.

library(rvest)

years<-2009:2015
weeks<-c(paste0("pre-season-week-", 1:4), paste0("week-", 1:17), "wildcard-weekend", "divisional-playoffs", "conf-championships", "pro-bowl", "superbowl")

load_weather<-function(year, week) {
  base_url<-"http://nflweather.com/week/"
  if (year == 2010) { # necessary because of different file naming
    start_url<-paste0(base_url, year, "/", week, "-2/")
  } else {
    start_url<-paste0(base_url, year, "/", week, "/")
  }
  if (year == 2013 && week == "pro-bowl") {
    return (NULL)
  }
  tryCatch ({  
    page<-html(start_url, encoding="ISO-8859-1") 
    table% html_nodes("table")  %>% .[[1]] %>% html_table()
    table<-cbind("Year"=year, "Week"=week, table[,c("Away", "Home", "Forecast", "Extended Forecast", "Wind")])
    return(table)
  }, 
  
  error = function(e) { 
    print(paste(e, "Year", y, "Week", w))
    return(NULL)
  })
}

weather_data<-data.frame("Year"=integer(0), "Week"=character(0), "Away"=character(0), "Home"=character(0), "Forecast"=character(0), "Extended Forecast"=character(0), "Wind"=character(0))
for (y in years) {
  for (w in weeks) {
    weather_data<-rbind(weather_data, load_weather(y, w))
  }
}


#### code without pipe #### 

html_table(html_nodes(page, "table")[[1]])

Learning Club 00.b: Setup your development environment (Get started with python package nfldb)

So, just a few days ago I posted Learning Club 00: Set up your development environment (Getting started with R). There I made a mistake and decided to use R without thinking about the data set I would use. I am still happy I wrote the post because it can give all the R users in the learning club an introduction on how to setup their R environment and which resources to use. But still I have to update you about my environment 🙂

And since I don’t know what activities will come up in the learning club, at least now I have R and python available. So I am going to prep

NFL data

For the learning club, or at least the first tasks, I want to use NFL (National Football League) data. It is not so easy to get hold of sports data, since e.g. the TV channels charge lots of money for their APIs. So, after exploring programmableweb.com and mashape.com, I found that most APIs cost a lot of money. My boyfriend searched the web a little further and found the python library nfldb by BurntSushi which comes with a postgres DB that you need to install on your computer/server.

Database and server

The data is now stored in a postgres database on our debian server.

BurntSushi provides an ER diagram which can be useful for using the data.

Accessing the data

As already mentioned, the package nfldb provides several methods to access the data. The author also provides API documentation and a great wiki.

SQL

The data can be accessed via command line using psql:

psql -U nfldb

Then it will ask for your password:

Passwort für Benutzer nfldb:

Then you will get a command prompt:

nfldb=>

This is how you get help:

nfldb=>\?

This is how you get all tables:

nfldb=>\d

This is the output (sorry it’s in German):

            Liste der Relationen
 Schema |    Name     |   Typ   | Eigentümer
--------+-------------+---------+------------
 public | agg_play    | Tabelle | nfldb
 public | drive       | Tabelle | nfldb
 public | game        | Tabelle | nfldb
 public | meta        | Tabelle | nfldb
 public | play        | Tabelle | nfldb
 public | play_player | Tabelle | nfldb
 public | player      | Tabelle | nfldb
 public | team        | Tabelle | nfldb
(8 Zeilen)

And this is how you get information about table “play”:

nfldb=>\d play
 first_down         | smallint             | not null Vorgabewert 0
 fourth_down_att    | smallint             | not null Vorgabewert 0
 fourth_down_conv   | smallint             | not null Vorgabewert 0
 fourth_down_failed | smallint             | not null Vorgabewert 0
 passing_first_down | smallint             | not null Vorgabewert 0
 penalty            | smallint             | not null Vorgabewert 0
 penalty_first_down | smallint             | not null Vorgabewert 0
 penalty_yds        | smallint             | not null Vorgabewert 0
 rushing_first_down | smallint             | not null Vorgabewert 0
 third_down_att     | smallint             | not null Vorgabewert 0
 third_down_conv    | smallint             | not null Vorgabewert 0
 third_down_failed  | smallint             | not null Vorgabewert 0
 timeout            | smallint             | not null Vorgabewert 0
 xp_aborted         | smallint             | not null Vorgabewert 0
Indexe:
    "play_pkey" PRIMARY KEY, btree (gsis_id, drive_id, play_id)
    "play_in_down" btree (down)
    "play_in_first_down" btree (first_down)
    "play_in_fourth_down_att" btree (fourth_down_att)
    "play_in_fourth_down_conv" btree (fourth_down_conv)
    "play_in_fourth_down_failed" btree (fourth_down_failed)
    "play_in_gsis_drive_id" btree (gsis_id, drive_id)
    "play_in_gsis_id" btree (gsis_id)
    "play_in_passing_first_down" btree (passing_first_down)
    "play_in_penalty" btree (penalty)
    "play_in_penalty_first_down" btree (penalty_first_down)
    "play_in_penalty_yds" btree (penalty_yds)
    "play_in_pos_team" btree (pos_team)
    "play_in_rushing_first_down" btree (rushing_first_down)
    "play_in_third_down_att" btree (third_down_att)
    "play_in_third_down_conv" btree (third_down_conv)
    "play_in_third_down_failed" btree (third_down_failed)
    "play_in_time" btree ((("time").phase), (("time").elapsed))
    "play_in_timeout" btree (timeout)
    "play_in_xp_aborted" btree (xp_aborted)
    "play_in_yardline" btree (((yardline).pos))
    "play_in_yards_to_go" btree (yards_to_go DESC)
Check-Constraints:
    "play_down_check" CHECK (down >= 1 AND down = 0 AND yards_to_go <= 100)
Fremdschlüssel-Constraints:
    "play_gsis_id_fkey" FOREIGN KEY (gsis_id, drive_id) REFERENCES drive(gsis_id, drive_id) ON DELETE CASCADE
    "play_gsis_id_fkey1" FOREIGN KEY (gsis_id) REFERENCES game(gsis_id) ON DELETE CASCADE
    "play_pos_team_fkey" FOREIGN KEY (pos_team) REFERENCES team(team_id) ON UPDATE CASCADE ON DELETE RESTRICT
Fremdschlüsselverweise von:
    TABLE "agg_play" CONSTRAINT "agg_play_gsis_id_fkey" FOREIGN KEY (gsis_id, drive_id, play_id) REFERENCES play(gsis_id, drive_id, play_id) ON DELETE CASCADE
    TABLE "play_player" CONSTRAINT "play_player_gsis_id_fkey" FOREIGN KEY (gsis_id, drive_id, play_id) REFERENCES play(gsis_id, drive_id, play_id) ON DELETE CASCADE
Trigger:
    agg_play_sync_insert AFTER INSERT ON play FOR EACH ROW EXECUTE PROCEDURE agg_play_insert()

python

Of course, you can also access your database using the python package nfldb. To test if everything works, I copied one of the first examples on the github page and changed it a little.

## import library
import nfldb

## connect to db
db = nfldb.connect()
q = nfldb.Query(db)

## analyse nfldb
q.game(season_year=2014, season_type="Regular")
for pp in q.sort("passing_yds").limit(7).as_aggregate():
	print pp.player, pp.passing_yds

I saved this file as 00data.py and called:

python 00data.py

The output was:

Drew Brees (NO, QB) 4952
Andrew Luck (IND, QB) 4761
Peyton Manning (DEN, QB) 4727
Matt Ryan (ATL, QB) 4694
Ben Roethlisberger (PIT, QB) 4659
Eli Manning (NYG, QB) 4410
Aaron Rodgers (GB, QB) 4381

Final words

I think the dataset is really cool because it has some relations and it is not just a data frame/matrix with samples and features like many training data sets. I think it will be interesting to analyze it, make visualizations and try to find some structure.

This was just a very introductory post because I just started using the db and the package myself. You will definitely get more insight when you follow my posts regarding the nfldb and the learning club.