DatenanalyseMitPython_01 - Wes McKinney Flashcards

Wes McKinney Auswertung von Daten mit Pandas, Numpy und iPython

1
Q

Wie kann ich ein DataFrame konstruieren?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

For-Schleife: gebe die Zahlen von 1 bis 10 aus

A

for i in range(1,10):
print(i)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

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 = …

A

new_obj = obj.drop(“c”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie kann ich mir in dem DataFrame data die Spalte one mit allen Zeilen anzeigen lassen?

A

data.loc[:,”one”]

oder

data[“one”]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie kann ich die Werte aus dem DataFrame frame nach der Spalte b sortieren?

A

frame.sort_values(by=”b”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie kann ich die Spalten two und four aus dem DataFrame data löschen?

A

data.drop([‘two’, ‘four’], axis=’columns’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie kann ich mit Integerwerten die Zeile 2 mit den Spalten 3, 0 und 1 auswählen?

A

data.iloc[2,[3,0,1]]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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?

A

obj.drop(“c”, inplace=True)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ein DataFrame arr mit Werten von 0 bis 12 in einer 3x4 Matrix

A

arr = np.arange(12.).reshape((3,4))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie kann ich in dem DataFrame data für alle Werte, die kleiner als 5 sind, eine 0 eintragen?

A

data[data<5] = 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie kann ich einen DataFrame schnell analysieren?

A

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()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

DataFrame: Wie kann ich der Spalte debt in alle Zeilen die 16.5 reinschreiben?

A

frame2[“debt”] = 16.5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie kann ich die Zeilen b a und d aus dem DataFrame obj auswählen?

A

obj[[“b”, “a”, “d”]]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Series: Wie kann ich überprüfen, ob b in der Series obj2 vorhanden ist?

A

‘b’ in obj2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wählt eine einzelne Zeile oder eine Teilmenge von Zeilen anhand des Labels aus dem DataFrame aus.

A

df.loc[val]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie kann ich ein solches DataFrame erzeugen?

one two three four

Ohio 0123

Colorado 4567

Utah 891011

New York 12131415

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie kann ich einen Dataframe df mit Zufallszahlen in eine 3x4 matrix mit Index a, a, b, b erstellen?

A

df = pd.DataFrame(np.random.randn(4, 3), index=[‘a’, ‘a’, ‘b’, ‘b’])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Numpy: Eine 2x3 Matrix mit Zufallswerten erstellen.

A

import numpy as np

data = np.random.randn(2,3)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

DataFrame: Als Beispiel füge ich zuerst eine neue Spalte eastern mit booleschen Werten hinzu, wo die Spalte state den Wert ‘Ohio’ enthält:

A

frame2[“eastern”] = frame2.state == “Ohio”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wählt eine einzelne Zeile oder eine Teilmenge von Zeilen anhand der Integer-Position aus dem DataFrame aus.

A

df.iloc[where]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=[‘d’, ‘b’, ‘a’, ‘c’])

Wie kann ich die Reihenfolge des index anpassen?

A

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’])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Erstelle eine solche Folge

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

A

list(range(10))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

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

A

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]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wählt einen einzelnen Skalarwert anhand der Zeilen- und Spaltenposition (Integer) aus.

A

df.iat[i, j]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Erstelle ein Series

obj

0 4

1 7

2 -5

3 3

dtype: int64

A

obj = pd.Series([4, 7, -5, 3])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Wie kann ich die Werte in der Series obj sortieren?

A

obj.sort_values()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Numpy: 4 × 4-Array mit Zufallswerten aus der Standardnormalverteilung erstellen

samples = …

A

samples = np.random.normal(size=(4, 4))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Wie kann ich mit Numpy die Dimensionen des Arrays data anzeigen?

A

data.shape

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wie kann ich mir in dem DataFrame data die Zeile Ohio anzeigen lassen?

A

data.loc[“Ohio”]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wählt sowohl Zeilen als auch Spalten anhand der Integer-Position aus.

A

df.iloc[where_i, where_j]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

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.]])

A

np.zeros((3,6))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Wie kann ich die ersten zwei Zeilen aus dem DataFrame data auswählen?

A

data[:2]

oder

data.iloc[:2,:]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

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).

A

df[val]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

DataFrame: Wie kann ich die Spalten anordnen bei der Erstellung eines Dataframes mit data als Input?

A

Falls Sie eine Sequenz aus Spalten angeben, werden die Spalten des DataFrame in dieser Reihenfolge angeordnet:

pd.DataFrame(data, columns=[‘year’, ‘state’, ‘pop’])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

DataFrame: Wie kann ich in die Spalte debt von frame2 aufsteigend die Zahlen 0.0 bis 5.0 eintragen?

A

frame2[“debt”] = np.arange(6.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Wie kann ich die Spalte two aus dem DataFrame data löschen?

A

data.drop(‘two’, axis=1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Wie kann ich den Wert aus Zeile 2 und Spalte 1 mit Integerwerten auswählen?

A

data.iloc[2,1]

38
Q

Wie kann ich aus dem DataFrame data die Zeilen 1 und 2 mit den Spalten 3, 0 und 1 auswählen?

A

data.iloc[[1,2],[3,0,1]]

39
Q

Wie kann ich die Korrelation zwischen MSFT und IBM aus dem DataFrame returns berechnen?

Was bedeutet das Ergebnis?

A

returns[‘MSFT’].corr(returns[‘IBM’])

0.4866233742385608

returns[‘MSFT’].corr(returns[‘MSFT’])

1.0

40
Q

Wie kann ich mir in dem DataFrame data alle Zeilen mit den ersten 3 Spalten anzeigen lassen unter der Bedingung, dass die Spalte three den Wert größer 5 hat

A

data.iloc[:,:3][data.three > 5]

41
Q

Slicing: Gib so etwas heraus: [7, 2, 3, 7, 5]

seq = [7, 2, 3, 7, 5, 6, 0, 1]

A

seq[:5]

42
Q

Erstelle eine solche Folge

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

A

list(range(0, 20, 2))

43
Q

Wie kann ich die Zeilensummen bilden aus dem DataFrame df?

A

Mit df.sum() bekommt man die Spaltensummen.

Mit df.sum(axis=1) bekommt man die Zeilensummen.

44
Q

Wie kann ich ein solches Series erzeugen?

a 0.0

b 1.0

c 2.0

d 3.0

dtype: float64

A

obj = pd.Series(np.arange(4.), index=[‘a’, ‘b’, ‘c’, ‘d’])

45
Q

Wie kann ich ein solches Dataframe mit einem Dictionary erstellen?

A

0 1

1 2

A

df1 = pd.DataFrame({‘A’: [1, 2]})

46
Q

Was ist ein Series?

A

Eine Series ist ein eindimensionales Array-artiges Objekt, das eine Sequenz aus Werten (vom Typ her vergleichbar mit NumPy-Typen) und ein damit verbundenes Array aus Markierungen oder Labels, den sogenannten Index, enthält. Die ein- fachste Series wird aus einem Array aus Daten gebildet:

47
Q

Slicing: Gib so etwas heraus: [2, 3, 7, 5]

seq = [7, 2, 3, 7, 5, 6, 0, 1]

A

seq[1:5]

48
Q

Wie kann ich mir die Werte von obj anzeigen lassen?

obj

array([4, 7, -5, 3], dtype=int64)

A

obj.values

49
Q

Sie können den DataFrame frame3 mit einer ähnlichen Syntax wie bei NumPy-Arrays transponieren (Zeilen und Spalten vertauschen):

A

frame3.T

50
Q

Slicing: Gib so etwas heraus: [1, 0, 6, 5, 7, 3, 2, 7]

seq = [7, 2, 3, 7, 5, 6, 0, 1]

A

seq[::-1]

51
Q

Erstelle ein Tupel

(4, 5, 6)

A

tup = 4,5,6

tup

52
Q

Was ist der Unterschied zwischen Numpy-Arrays und Pythons eingebauten Listen, insbesondere beim Slicen?

A

Ein erster wichtiger Unterschied zu Pythons eingebauten Listen besteht darin, dass Teilbereiche (Slices) von Arrays sogenannte Views auf das ursprüngliche Array sind. Das bedeutet, dass die Daten nicht kopiert werden und sich alle Modifikatio- nen an dem View im Quell-Array niederschlagen.

53
Q

Numpy: Was sind universelle Funktionen?

A

Eine universelle Funktion oder ufunc ist eine Funktion, die auf den Daten in ndarrays elementweise Operationen durchführt.

Stellen Sie sie sich als einen schnellen vektorisierten Wrapper für einfache Funktionen vor, der einen oder mehrere skalare Werte nimmt und ein oder mehrere skalare Ergebnisse produziert. Viele ufuncs sind einfache elementweise Transformationen, wie sqrt oder exp:

arr = np.arange(10)

np.sqrt(arr)

54
Q

Wie kann ich die Werte aus dem DataFrame frame nach der Spalte a und b sortieren?

A

frame.sort_values(by=[“a”,”b”])

55
Q

Wie kann ich die Zeilen aus dem DataFrame data auswählen, wo in der Spalte three der Wert größer als 5 ist?

A

data[data[“three”] > 5]

56
Q

Wie kann ich mit Integerwert die Zeile 2 auswählen?

A

data.iloc[2]

57
Q

Wie kann ich ein solches DataFrame df1 erstellen?

a b c d

0 0.0 1.0 2.0 3.0

1 4.0 5.0 6.0 7.0

2 8.0 9.0 10.0 11.0

A

df1 = pd.DataFrame(np.arange(12.).reshape((3, 4)),
columns=list(‘abcd’))

58
Q

Was ist das ndarray?

A

Eines der zentralen Merkmale von NumPy ist sein N-dimensionales Array-Objekt oder ndarray, ein schneller, flexibler Container für große Datenmengen in Python. Arrays erlauben Ihnen, mathematische Operationen auf ganzen Datenblöcken durchzuführen, wobei die Syntax den äquivalenten Operationen zwischen skalaren Elementen ähnlich ist.

59
Q

Wie kann ich d und 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

A

obj.drop([“d”, “c”])

60
Q

DataFrame: Wie lösche ich die Spalte eastern aus frame2?

A

del frame2[“eastern”]

61
Q

Wie kann ich NaN auffüllen mit dem vorhergehenden Wert?

obj3 = pd.Series([‘blue’, ‘purple’, ‘yellow’], index=[0, 2, 4])

obj3.reindex(range(6))

0 blue

1 NaN

2 purple

3 NaN

4 yellow

5 NaN

A

Bei geordneten Daten wie Zeitreihen ist es vielleicht wünschenswert, eine Interpolation vorzunehmen oder Werte einzusetzen, wenn neu indiziert wird. Dies erlaubt uns die method-Option mit einer Methode wie ffill, die die Werte vorwärtsgerichtet auffüllt:

obj3.reindex(range(6), method=”ffill”)

62
Q

Wie kann ich die Zeile Colorado mit den Spalten two und three aus dem DataFrame data auswählen?

A

data.loc[“Colorado”,[“two”,”three”]]

63
Q

DataFrame: Wie kann ich die Spalte state aus frame2 auswählen?

A

frame2[“state”]

64
Q

Wie kann ich die Spaltensummen bilden aus dem DataFrame df?

A

Bei Aufruf der DataFrame-Methode sum wird eine Series zurückgegeben, die Spaltensummen enthält:

df.sum()

65
Q

Wählt sowohl Zeilen als auch Spalten anhand des Labels aus.

A

df.loc[val1, val2]

66
Q

Numpy: Was ist arange?

Wie erstelle ich das?

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])

A

arange ist eine Version der eingebauten Python-Funktion range für Arrays:

Wie die eingebaute range-Funktion, liefert aber ein ndarray statt einer Liste zurück.

np.arange(15)

67
Q

Wie kann ich die labels im Index einer Series verwenden um etwas auszuwählen?

d 4

b 7

a -5

c 3

dtype: int64

A

Im Gegensatz zu NumPy-Arrays können Sie die Labels im Index nutzen, wenn Sie einzelne Werte oder eine ganze Gruppe von Werten auswählen:

obj2[‘a’]

68
Q

Was ist der Unterschied zwischen NumPy und pandas?

A
  • Der größte Unterschied zwischen NumPy und pandas besteht darin, dass pandas für das Arbeiten mit tabellarischen oder heterogenen Daten gedacht ist,
  • …während NumPy sich am besten für das Arbeiten mit homogenen numerischen Array-Daten eignet.
69
Q

Erstelle ein Tupel mit einem String

(‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’)

A

tup = tuple(“string”)

tup[0]

’s’

70
Q

Slicing: Gib so etwas heraus: [7, 3, 5, 0] jedes zweite Element

seq = [7, 2, 3, 7, 5, 6, 0, 1]

A

seq[::2]

71
Q

arr = np.arange(10)

arr

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

???

array([5, 6, 7])

A

arr[5:8]

72
Q

Mehrere Rückgabewerte

Als ich nach Java und C++ das erste Mal in Python programmierte, war eine meiner Lieblingseigenschaften die Fähigkeit, mit einer einfachen Syntax mehrere Werte aus einer Funktion zurückzugeben. Hier ist ein Beispiel:

Definiere eine Funktion, die drei Werte 5, 6 und 7 zurückgibt.

A
def f():
 a = 5
 b = 6
 c = 7
 return a, b, c

a,b,c = f()

73
Q

Wie kann ich in dem DataFrame df2 in Zeile 1 in Spalte b eine NaN einfügen?

A

df2.loc[1,”b”] = np.nan

74
Q

Numpy: Wie kann ich ein Array aus einer Liste erzeugen?

data1 = [6, 7.5, 8, 0, 1]

arr1

array([6. , 7.5, 8. , 0. , 1.])

A

arr1 = np.array(data1)

75
Q

DataFrame: Wie kann ich bei frame3 den Namen von Index und Columns verändern?

A

frame3. index.name = ‘year’;
frame3. columns.name = ‘state’

76
Q

Mit welcher Methode kann ich Zeilen oder Spalten neu indexieren?

A

reindex-Methode

Bei DataFrames kann reindex entweder den (Zeilen-)Index, die Spalten oder beides ändern. Wird nur eine Sequenz übergeben, werden im Ergebnis die Zeilen neu indiziert:

77
Q

Wählt eine einzelne Spalte oder eine Teilmenge von Spalten anhand des Labels aus.

A

df.loc[:, val]

78
Q

Erstelle eine solche Folge

[5, 4, 3, 2, 1]

A

list(range(5, 0, -1))

79
Q

Erstelle ein nested tuple

((4, 5, 6), (7, 8))

A

nested_tup = (4,5,6),(7,8)

nested_tup

80
Q

Was sind Dictionarys?

A

Dictionarys (dict) gelten als die wichtigste in Python eingebaute Datenstruktur. Ein gebräuchlicherer Name dafür ist Hash-Tabelle oder assoziatives Array. Dabei handelt es sich um eine Kollektion flexibler Größe aus Schlüssel-Wert-Paaren, wobei Schlüssel und Wert Python-Objekte sind.

Eine Möglichkeit, sie herzustellen, besteht im Einsatz von geschweiften Klammern {} und Doppelpunkten zum Trennen der Schlüssel von den Werten:

d1 = {‘a’ : ‘some value’, ‘b’ : [1, 2, 3, 4]}

81
Q

Numpy: Wie erzeuge ich ein Array mit Nullen?

array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

A

np.zeros(10)

82
Q

Wie kann ich mir den Index von obj anzeigen lassen (eine Series)

Index([‘d’, ‘b’, ‘a’, ‘c’], dtype=’object’)

A

obj2.index

83
Q

Was ist ein DataFrame?

A

Ein DataFrame stellt eine rechteckige Datentabelle dar und enthält eine geordnete Sammlung aus Spalten, die jeweils aus einem anderen Werttyp (numerisch, String, boolesch usw.) bestehen können.

Der DataFrame hat sowohl einen Zeilen- als auch einen Spaltenindex – stellen Sie sich das Ganze einfach als Dictionary aus Series mit demselben Index vor. Unter der Oberfläche werden die Daten nicht als Liste, Dictionary oder andere Sammlung eindimensionaler Arrays gespeichert, sondern als ein oder mehrere zweidimensionale Blöcke.

84
Q

Eine Series mit einem bestimmten Index

d 4

b 7

a -5

c 3

dtype: int64

A

obj2 = pd.Series([4, 7, -5, 3], index=[‘d’, ‘b’, ‘a’, ‘c’])

85
Q

Wählt eine einzelne Spalte oder eine Teilmenge von Spalten anhand der Integer-Position aus.

A

df.iloc[:, where]

86
Q

Wählt einen einzelnen Skalarwert anhand des Zeilen- und Spalten-Labels aus.

A

df.at[label_i, label_j]

87
Q

Wie kann ich einen Rang bilden mit der Series obj?

A

Bei der Rangbildung werden Ränge von 1 bis zur Anzahl der gültigen Datenpunkte in einem Array zugewiesen. Die Methode rank für Series und DataFrame ist das passende Mittel dazu; standardmäßig bricht rank Gleichstände auf, indem jeder Gruppe ihr Mittelwert als Rang zugewiesen wird:

Wenn also eins doppelt auftritt, bekommt jedes z.B. 6.5

obj.rank()

88
Q

Wie kann ich eine Korrelationsmatrix als DataFrame von returns erstellen?

A

Die DataFrame-Methoden corr und cov wiederum liefern eine vollständige Korrelations- bzw. Kovarianzmatrix als DataFrame zurück:

returns.corr()

89
Q

Unterschied zwischen Arrays und Listen?

A

Listen sind einfacher zu erstellen. Arrays need to be declared. Lists don’t, since they are built into Python. In the examples above, you saw that lists are created by simply enclosing a sequence of elements into square brackets. Creating an array, on the other hand, requires a specific function from either the array module (i.e., array.array()) or NumPy package (i.e., numpy.array()). Because of this, lists are used more often than arrays.

Arrays eignen sich besser für viele Daten. Arrays can store data very compactly and are more efficient for storing large amounts of data.

Arrays eignen sich besser für numerische Operationen. Arrays are great for numerical operations; lists cannot directly handle math operations. For example, you can divide each element of an array by the same number with just one line of code. If you try the same with a list, you’ll get an error.

90
Q

Was ist der Unterschied zwischen .iat und .iloc?

A
  • iat funktioniert nur mit skalaren Werten und ist daher schneller als universale Funktionen wie iloc und loc
  • iat gibt also nur einen einzigen Wert zurück. iloc und loc können auch mehrere Reihen zurückgeben.