Das dritte Argument ist optional und hat den Standardwert - FALSE, aber wenn der Benutzer explizit TRUE übergibt, behält die Funktion nach dem Filtern alle Variablen im DataFrame. Beachten Sie, dass dplyr eine Operatorfunktion namens Pipes der Form -%>% verwendet, die so interpretiert wird, dass sie die linke Variable als erstes Argument der rechten Funktion liefert. Die Notation x%? % f(y) wird nämlich zu f(x, y). library(dplyr) df1 <- (id = c(1, 2, 2, 3, 3, 4, 5, 5), gender = c("F", "F", "M", "F", "B", "B", "F", "M"), variant = c("a", "b", "c", "d", "e", "f", "g", "h")) t1 <- df1%>% distinct(id,. keep_all = TRUE) t2 <- df1%>% distinct(gender,. keep_all = TRUE) t3 <- df1%>% distinct(variant,. keep_all = TRUE) df2 <- mtcars tmp1 <- df2%>% distinct(cyl,. keep_all = TRUE) tmp2 <- df2%>% distinct(mpg,. keep_all = TRUE) Verwenden Sie die Funktionen group_by, filter und duplicated, um doppelte Zeilen pro Spalte in R. zu entfernen Eine andere Lösung, um doppelte Zeilen nach Spaltenwerten zu entfernen, besteht darin, den DataFrame mit der Spaltenvariablen zu gruppieren und dann Elemente mit den Funktionen filter und Dupliziert zu filtern.
Innerhalb der loc Anweisung vergeben wir einen neuen Identifier für die Zeile. df. loc [ 'ID-999', :] = [ 'Karl', 45, 'deutsch', 3200] Liegen die Daten als Dictionary vor, sollte dieses unbedingt zu einer Series umgewandelt werden, bevor die Daten an den Datensatz angehangen werden. new_row = { 'Nationalität': 'deutsch', 'Name': 'Karl', 'Alter': 33, 'Gehalt': 800} new_row = pd. Series ( new_row) df. loc [ 'ID-333', :] = new_row Spalten und Zeilen löschen ¶ Für das Löschen von Spalten existieren 2 Wege. Eine Möglichkeit ist, mit dem Keyword del zu arbeiten, welches zur Standarddistribution von Python gehört. Eine anderer Weg ist es, die in pandas implementierte Methode drop zu wählen. Diese verfügt über ein Argument axis welches Standardmäßig durch den Wert 0 auf die Zeilen referenziert. Soll eine Spalte gelöscht werden, muss dieses Argument auf den Wert 1 gesetzt werden. Spalten ¶ df. drop ( 'Gehalt', axis = 1) del df [ 'Gehalt'] Zeilen ¶ df. drop ([ 'ID-123', 'ID-707'], axis = 0) Spalten und Zeilen sortieren ¶ Spaltensortierung ¶ Die Spaltensortierung erfolgt in 3 Schritten: Extrahieren der Spaltennamen und als Liste ablegen Umsortieren der Liste Umsortieren des DataFrames über die Property loc.
Im heutigen Post werde ich genauer auf fehlende Werte ("missings", "missing values") eingehen. R hat einen eigenen Wert für fehlende Werte, nämlich NA (für "not available"). Missings können ein heikles Thema sein, aber wenn man damit umzugehen weiß, ist es alles nur noch halb so schlimm! Die Grundlagen Wir fangen mit den Grundlagen an. Wie schon erwähnt, werden fehlende Werte in R mit dem Wert NA dargestellt. NA ist hierbei keine Zeichenkette (d. h., kein character vector), sondern tatsächlich ein R-eigener Wert, der entsprechend farblich markiert wird. Wir können zum Beispiel einen Vektor mit einem Element erstellen, welches "missing" ist: missingValue <- NA. Das Objekt missingValue beinhaltet nun einen Wert, der fehlend ist. Genauso können wir einen Vektor erstellen und ihn mit 100 missings füllen: vecMissings <- rep(NA, 100). Mit der Funktion rep ("replicate") ist das einfach getan. Mit missings kann man auch (mehr oder minder) Dinge berechnen. Zum Beispiel ergibt 1 + missingValue selbst wieder NA.
Warum das so ist? Ein Dictionary verfügt über keine innere Sortierung. Wenn wir bspw. ein Dictionary über dessen Literal erstellen, wird es beim Anhängen an den DataFrame anhand seiner Keys sortiert (irgendwie muss ja sortiert werden). Die neue Sortierung entspricht dabei keineswegs unserer Eingabe. Problematisch ist außerdem, dass die Keys anstatt der Werte angehangen werden. Also Achtung: Eine Zuordnung an den Index des DataFrames findet bei Dictionaries nicht statt! Also nochmal: Ein Dictionary wird an einen DataFrame angehangen, indem es vorher zu einer Series konvertiert wurde. Die Series wird an den DataFrame mit Hilfe des Indizes gejoint. df [ 'Nachname'] = pd. Series ( Nachname) Series Dieser Ansatz entspricht dem obigen Beispiel für Dictionaries. Eine Series wird anhand ihres Indizes an den DataFrame gejoint. Nachname = pd. Series ( data = [ 'Bruni', 'Bonke', 'Wojcek', 'Müller', 'Bonucci'], index = [ 'ID-462', 'ID-111', 'ID-707', 'ID-123', 'ID-997']) Zeilen an den DataFrame anhängen ¶ Liegen die Werte einer neuen Zeile als Liste vor, kann diese über die Zuweisung mithilfe der Property loc an den Datensatz angefügt werden.