DatenanalyseMitPython_02 - Wes McKinney Flashcards
Wes McKinney Auswertung von Daten mit Pandas, Numpy und iPython
Wie erstelle ich eine solche Series?
String_data = …
0 aardvark
1 artichoke
2 NaN
3 avocado
dtype: object
string_data = pd.Series([‘aardvark’, ‘artichoke’, np.nan, ‘avocado’])
Wie kann ich whitespace (inkl. Zeilenumbrüche) entfernen und Wörter nach Komma aus val separieren?
val = ‘a,b, guido’
pieces = …
pieces = [x.strip() for x in val.split(‘,’)]
Wie kann ich einen : in val suchen?
val.find(‘:’)
Der gibt mir dann 1 oder -1 heraus
Standard-Imports von matplotlib?
- %matplotlib notebook
- import matplotlib.pyplot as plt
Wo befinden sich Diagramme in matplotlib?
Diagramme in matplotlib befinden sich in einem Figure-Objekt.
Ein neues Diagramm können Sie mit plt.figure erstellen:
fig = plt.figure()
Wie kann ich diesen text aufteilen?
text = “"”Dave dave@google.com
Steve steve@gmail.com
Rob rob@gmail.com
Ryan ryan@yahoo.com
“””
pattern = r’[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’
Es gibt drei Kategorien des re-Moduls: Mustererkennung, Ersetzen und Aufteilen.
- import re*
- regex = re.compile(pattern, flags=re.IGNORECASE)*
- regex.findall(text)*
Der Aufruf von findall auf dem Text erzeugt eine Liste der E-Mail-Adressen:
[‘dave@google.com’, ‘steve@gmail.com’, ‘rob@gmail.com’, ‘ryan@yahoo.com’]
Stellen Sie sich vor, Sie wollten in einer der Spalten Werte finden, deren absoluter Wert größer als 3 ist:
col = data[2]
Verwende eine ufunc.
col[np.abs(col) > 3]
Wie kann ich in df für die NA-Werte in Spalte 1 –> 0.5 und in Spalte 2 –> 0 einsetzen?
df.fillna({1: 0.5, 2: 0})
Wie kann ich die Zeilen entfernen lassen, die in Spalte k1 ein Duplikat haben?
data.drop_duplicates([‘k1’])
Wie kann ich einen String mit einer variablen Anzahl von Whitespace- Zeichen (Tabulatoren, Leerzeichen und Zeilenumbrüchen) aufteilen?
Ein regex beschreibt ein Muster, das im Text gesucht werden soll und dann für viele Zwecke eingesetzt werden kann.
Um alle Zeilen in data auszuwählen, die einen Wert enthalten, der über 3 oder –3 hinausgeht, können Sie die Methode XXX auf einem booleschen DataFrame einsetzen:
Methode any
data[(np.abs(data) > 3).any(1)]
Wie entfernt man aus DataFrame data nur die Zeilen, die komplett NA sind?
Mit how=’all’ werden nur die Zeilen entfernt, die komplett NA sind:
data.dropna(how=’all’)
Wie kann ich einen kommaseparierten String aufteilen?
val = ‘a,b, guido’
val.split(‘,’)
–> [‘a’, ‘b’, ‘ guido’]
Wie kann ich zählen, wie oft ein , in val auftritt?
val.count(‘,’)
Wie kann ich aus data die Duplikate entfernen lassen?
data.drop_duplicates()
Was ist der Sverweis in Python?
Die Methode map auf einer Series akzeptiert eine Funktion oder ein Dictionary-artiges Objekt mit einer Zuordnung
Wie kann ich ein Komma , aus val löschen?
val.replace(‘,’, ‘’)
Wie kann ich in data für die NA-Werte den Mittelwert einfügen lassen?
data.fillna(data.mean())
Wie kann ich diesen String aufteilen?
text = “foo bar\t baz \tqux”
v
[‘foo’, ‘bar’, ‘baz’, ‘qux’]
import re
re.split(‘\s+’, text)
Mit \s+ werden ein oder mehrere Whitespaces beschrieben.
Wie kann ich in df die NA Werte mit 0 ersetzen?
Anstatt fehlende Daten herauszufiltern (und damit potenziell andere Daten mit zu verwerfen), könnten Sie die »Löcher« auf andere Weise füllen. In den meisten Fällen ist die Methode fillna das Werkzeug der Wahl. Beim Aufruf von fillna mit einer Konstanten werden fehlende Werte durch diesen Wert ersetzt:
df.fillna(0)
Wie kann ich in dem Dataframe data eine zusätzliche Spalte v1 mit Zahlen von 0 bis 6 einfügen lassen?
data[‘v1’] = range(7)
Wie kann ich mir aus Series string_data die Null-Werte als boolean anzeigen lassen?
string_data.isnull()
Standard-Import für NaN-Werte?
from numpy import nan as NA
Wie kann ich aus df die ersten 4 Werte aus Spalte 1 als NA setzen?
df.iloc[:4,1] = NA
Wie ersetze ich in data die Werte -999 und -1000 mit nan, bzw. 0?
data.replace([-999,-1000],[np.nan,0])
Die Standard-Import am Anfang?
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
data = np.arange(10)
Wie kann ich data als plot malen?
plt.plot(data)
Wie kann ich die NA herausfiltern?
data = pd.Series([1, NA, 3.5, NA, 7])
data.dropna()
Wie kann ich aus data die Spalte food alles kleinschreiben?
lowercased = …
lowercased = data[‘food’].str.lower()
Wie kann ich aus data alle Spalten entfernen, die komplett NA sind?
data.dropna(axis=1, how=’all’)
Wie kann ich überprüfen, ob in data das Wort gmail vorkommt?
data.str.contains(‘gmail’)
pieces
[‘a’, ‘b’, ‘guido’]
first, second, third = pieces
Wie kann ich so etwas erstellen?
‘a::b::guido’
’::’.join(pieces)
Wie kann ich Subplots in eine Abbildung einfügen?
fig = plt.figure()
ax1 = …
ax1 = fig.add_subplot(2, 2, 1)
Das bedeutet, dass die Abbildung 2 × 2 Diagramme enthält (also insgesamt vier)
und wir den ersten der vier Subplots auswählen (von 1 aufwärts gezählt).
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)

ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32]
Unterteilen wir sie in die Gruppen 18 bis 25, 26 bis 35, 36 bis 60 und schließlich 61 und älter.
cats = …
bins = [18,25,35,60,100]
cats = pd.cut(ages,bins)
Wie kann ich eine zusätzliche Spalte animal in data einfügen, mit einer Zuordnung von Fleisch zu Tier (meat_to_animal).
lowercased enthält das Gericht.

data[‘animal’] = lowercased.map(meat_to_animal)

Wie entsteht ein wiederverwendbares regex-Objekt?
text = “foo bar\t baz \tqux”
regex = …
import re
text = “foo bar\t baz \tqux”
regex = re.compile(‘\s+’)
regex.split(text)
Wie kann ich von data eine boolesche Serie zurückgeben lassen, die anzeigt, ob die Zeile ein Duplikat ist?
data.duplicated()