DatenanalyseMitPython_01 - Wes McKinney Flashcards
Wes McKinney Auswertung von Daten mit Pandas, Numpy und iPython
Wie kann ich ein DataFrame konstruieren?
Es gibt viele Möglichkeiten, ein DataFrame zu konstruieren. Eine der gebräuchlichsten Arten ist sicher die Erstellung aus einem Dictionary aus Listen gleicher Länge oder NumPy-Arrays:
data = {‘state’: [‘Ohio’, ‘Ohio’, ‘Ohio’, ‘Nevada’, ‘Nevada’, ‘Nevada’],
‘year’: [2000, 2001, 2002, 2001, 2002, 2003],
‘pop’: [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
For-Schleife: gebe die Zahlen von 1 bis 10 aus
for i in range(1,10):
print(i)
Wie kann ich c löschen?
obj = pd.Series(np.arange(5.), index=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])
a 0.0
b 1.0
c 2.0
d 3.0
e 4.0
new_obj = …
new_obj = obj.drop(“c”)
Wie kann ich mir in dem DataFrame data die Spalte one mit allen Zeilen anzeigen lassen?
data.loc[:,”one”]
oder
data[“one”]
Wie kann ich die Werte aus dem DataFrame frame nach der Spalte b sortieren?
frame.sort_values(by=”b”)
Wie kann ich die Spalten two und four aus dem DataFrame data löschen?
data.drop([‘two’, ‘four’], axis=’columns’)
Wie kann ich mit Integerwerten die Zeile 2 mit den Spalten 3, 0 und 1 auswählen?
data.iloc[2,[3,0,1]]
Viele Funktionen, wie drop, die die Größe oder Gestalt einer Series oder eines DataFrame modifizieren, können ein Objekt an Ort und Stelle manipulieren, ohne ein neues Objekt zurückzugeben:
wie lösche ich die Spalte c in obj?
obj.drop(“c”, inplace=True)
Ein DataFrame arr mit Werten von 0 bis 12 in einer 3x4 Matrix
arr = np.arange(12.).reshape((3,4))
Wie kann ich in dem DataFrame data für alle Werte, die kleiner als 5 sind, eine 0 eintragen?
data[data<5] = 0
Wie kann ich einen DataFrame schnell analysieren?
Ein weiterer Typ von Methoden ist weder eine Reduktion noch eine Akkumulation. describe ist ein Beispiel dafür. Es erzeugt mehrere zusammenfassende Statistiken auf einen Schlag:
df.describe()
DataFrame: Wie kann ich der Spalte debt in alle Zeilen die 16.5 reinschreiben?
frame2[“debt”] = 16.5
Wie kann ich die Zeilen b a und d aus dem DataFrame obj auswählen?
obj[[“b”, “a”, “d”]]
Series: Wie kann ich überprüfen, ob b in der Series obj2 vorhanden ist?
‘b’ in obj2
Wählt eine einzelne Zeile oder eine Teilmenge von Zeilen anhand des Labels aus dem DataFrame aus.
df.loc[val]
Wie kann ich ein solches DataFrame erzeugen?
one two three four
Ohio 0123
Colorado 4567
Utah 891011
New York 12131415
data = pd.DataFrame(np.arange(16).reshape((4, 4)),
index=[‘Ohio’, ‘Colorado’, ‘Utah’, ‘New York’],
columns=[‘one’, ‘two’, ‘three’, ‘four’])
Bei reshape müssen nicht unbedingt 2 Klammern stehen. Es funktioniert auch mit (4,4)
Wie kann ich einen Dataframe df mit Zufallszahlen in eine 3x4 matrix mit Index a, a, b, b erstellen?
df = pd.DataFrame(np.random.randn(4, 3), index=[‘a’, ‘a’, ‘b’, ‘b’])
Numpy: Eine 2x3 Matrix mit Zufallswerten erstellen.
import numpy as np
data = np.random.randn(2,3)
DataFrame: Als Beispiel füge ich zuerst eine neue Spalte eastern mit booleschen Werten hinzu, wo die Spalte state den Wert ‘Ohio’ enthält:
frame2[“eastern”] = frame2.state == “Ohio”
Wählt eine einzelne Zeile oder eine Teilmenge von Zeilen anhand der Integer-Position aus dem DataFrame aus.
df.iloc[where]
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=[‘d’, ‘b’, ‘a’, ‘c’])
Wie kann ich die Reihenfolge des index anpassen?
Beim Aufrufen von reindex mit dieser Series werden die Daten entsprechend dem neuen Index angeordnet, und fehlende Werte werden ergänzt, wenn noch keine Indexwerte vorhanden sind:
obj2 = obj.reindex([‘a’, ‘b’, ‘c’, ‘d’, ‘e’])
Erstelle eine solche Folge
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(10))
Series: Wie bekomme ich die Werte größer 2?
obj….
d 4
b 7
a -5
c 3
dtype: int64
d 4
b 7
c 3
dtype: int64
Bei der Nutzung von NumPy-Funktionen oder NumPy-artigen Operationen wie der Filterung mit einem booleschen Array, der skalaren Multiplikation oder dem Einsatz von mathematischen Funktionen bleibt die Verknüpfung zwischen Index und Wert erhalten:
obj2[obj2 > 0]
Wählt einen einzelnen Skalarwert anhand der Zeilen- und Spaltenposition (Integer) aus.
df.iat[i, j]
Erstelle ein Series
obj
0 4
1 7
2 -5
3 3
dtype: int64
obj = pd.Series([4, 7, -5, 3])
Wie kann ich die Werte in der Series obj sortieren?
obj.sort_values()
Numpy: 4 × 4-Array mit Zufallswerten aus der Standardnormalverteilung erstellen
samples = …
samples = np.random.normal(size=(4, 4))
Wie kann ich mit Numpy die Dimensionen des Arrays data anzeigen?
data.shape
Wie kann ich mir in dem DataFrame data die Zeile Ohio anzeigen lassen?
data.loc[“Ohio”]
Wählt sowohl Zeilen als auch Spalten anhand der Integer-Position aus.
df.iloc[where_i, where_j]
Numpy: Wie erzeuge ich ein höherdimensionales Array?
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
np.zeros((3,6))
Wie kann ich die ersten zwei Zeilen aus dem DataFrame data auswählen?
data[:2]
oder
data.iloc[:2,:]
Wählt eine einzelne Spalte oder eine Sequenz von Spalten aus dem DataFrame aus.
Angenehme Sonderfälle: boolesches Array (Filtern von Zeilen), Slice (Slicing von Zeilen) oder boolesches DataFrame (setzt Werte anhand irgendwelcher Kriterien).
df[val]
DataFrame: Wie kann ich die Spalten anordnen bei der Erstellung eines Dataframes mit data als Input?
Falls Sie eine Sequenz aus Spalten angeben, werden die Spalten des DataFrame in dieser Reihenfolge angeordnet:
pd.DataFrame(data, columns=[‘year’, ‘state’, ‘pop’])
DataFrame: Wie kann ich in die Spalte debt von frame2 aufsteigend die Zahlen 0.0 bis 5.0 eintragen?
frame2[“debt”] = np.arange(6.)
Wie kann ich die Spalte two aus dem DataFrame data löschen?
data.drop(‘two’, axis=1)