Pandas bauen DataFrame Zeile für Zeile auf
- Erstellen Sie Zeilen in Pandas DataFrame
-
Verwenden der Funktion
loc()
zum Erstellen von Zeilen in Pandas DataFrame -
Verwenden der Funktion
pandas.concat()
zum Erstellen von Zeilen in Pandas DataFrame
In diesem Artikel wird gezeigt, wie Sie einen Dataframe zeilenweise anstelle der üblicherweise befolgten spaltenweisen Konvention in Pandas erstellen.
Erstellen Sie Zeilen in Pandas DataFrame
Pandas DataFrame ist eine Struktur, die Daten mit zwei Dimensionen und den diesen Dimensionen entsprechenden Beschriftungen speichert. DataFrames sind vergleichbar mit SQL-Tabellen und Tabellenkalkulationen, die in Anwendungen wie Excel und Calc bearbeitet werden können.
Da sie ein wesentlicher Bestandteil der Python- und NumPy-Ökosysteme sind, sind DataFrames häufig Tabellen und Tabellenkalkulationen in Bezug auf Geschwindigkeit, Benutzerfreundlichkeit und Leistung überlegen. Dies ist bei vielen Anwendungen der Fall.
Als Datenspeicherstruktur kann es auf der Grundlage einer bestimmten Bedingung erforderlich sein, dass Daten zeilenweise statt spaltenweise eingegeben werden müssen.
Betrachten Sie den folgenden Code.
import pandas
df = pandas.DataFrame(
columns=["a", "b", "c", "d", "e"], index=["v", "w", "x", "y", "z"]
)
y = {"a": 1, "b": 5, "c": 2, "d": 3, "e": 7}
print("Attempt 1")
# df['y'] = y
# print(df)
print("Attempt 2")
# df.join(y)
Die folgenden Ausgaben jedes Versuchs werden separat geschrieben.
Ausgabe (Versuch 1):
Attempt 1
a b c d e y
v NaN NaN NaN NaN NaN NaN
w NaN NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN NaN
y NaN NaN NaN NaN NaN NaN
z NaN NaN NaN NaN NaN NaN
Ausgabe (Versuch 2):
Traceback (most recent call last):
File "d:\Test\test.py", line 13, in <module>
df.join(y)
File "C:\Program Files\Python310\lib\site-packages\pandas\core\frame.py", line 9969, in join
return self._join_compat(
File "C:\Program Files\Python310\lib\site-packages\pandas\core\frame.py", line 10036, in _join_compat
can_concat = all(df.index.is_unique for df in frames)
File "C:\Program Files\Python310\lib\site-packages\pandas\core\frame.py", line 10036, in <genexpr>
can_concat = all(df.index.is_unique for df in frames)
AttributeError: 'builtin_function_or_method' object has no attribute 'is_unique'
Im obigen Code wird zuerst eine DataFrame-Instanz initialisiert, mit Spalten ['a','b','c','d', 'e']
mit Indizes ['v', 'w','x','y','z']
. Das Hauptziel besteht darin, Elemente zeilenweise hinzuzufügen, was in unserem Fall, wie aus dem Code hervorgeht, y
ist.
Die in die Eingabe einzugebenden Daten werden initialisiert, wobei die jeder Spalte entsprechenden Werte als {'a':1, 'b':5, 'c':2, 'd':3, 'e' angegeben werden: 7}
.
Im ersten Versuch werden die erstellten Daten dem DataFrame zugewiesen, indem sie mit df[y]
auf den Index y
gesetzt werden. Wie aus der Ausgabe hervorgeht, wird jedoch eine neue Spalte erstellt, deren Mitglieder wie bei allen anderen Elementen NaN
sind.
Beim zweiten Versuch wird die Methode join()
verwendet, um zu versuchen, die deklarierten Daten mit dem DataFrame selbst zu verbinden, was ebenfalls einen Fehler ausgibt, das Objekt "builtin_function_or_method' has no attribute 'is_unique'"
. Dieses Problem kann mit den folgenden unten erwähnten Techniken angegangen werden.
- Verwendung der Funktion
loc()
.
- Verwendung der Funktion
pandas.concat()
.
Verwenden der Funktion loc()
zum Erstellen von Zeilen in Pandas DataFrame
Betrachten Sie den folgenden Code:
import pandas
df = pandas.DataFrame(
columns=["a", "b", "c", "d", "e"], index=["v", "w", "x", "y", "z"]
)
print("Current Shape:\n" + str(df))
y = {"a": 1, "b": 5, "c": 2, "d": 3, "e": 7}
df.loc["y"] = pandas.Series(y)
print("DataFrame:\n" + str(df))
Ausgang:
Current Shape:
a b c d e
v NaN NaN NaN NaN NaN
w NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN
y NaN NaN NaN NaN NaN
z NaN NaN NaN NaN NaN
DataFrame:
a b c d e
v NaN NaN NaN NaN NaN
w NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN
y 1 5 2 3 7
z NaN NaN NaN NaN NaN
Die Eigenschaft loc
der DataFrame-Klasse wird verwendet, um auf eine Zeile oder Spalte eines DataFrame zuzugreifen. Die Eigenschaft loc
ermöglicht den Zugriff auf eine einzelne oder eine Gruppe von Zeilen und Spalten und ein boolesches Array.
In unserem Code haben wir die Eigenschaft loc
verwendet, da die Eigenschaft labelbasiert ist. Daher haben wir das gewünschte Label (oder den Index) übergeben, in unserem Fall y
.
Beachten Sie, dass panda.Series()
die Eingabe ausrichten soll, falls Sie nicht alle Elemente angeben müssen.
Verwenden der Funktion pandas.concat()
zum Erstellen von Zeilen in Pandas DataFrame
Betrachten Sie den folgenden Code:
import pandas
df = pandas.DataFrame(columns=["a", "b", "c", "d", "e"], index=[])
print("Current Shape:\n" + str(df))
entry = pandas.DataFrame.from_dict(
{
"a": [1, 6, 11, 16],
"b": [2, 7, 12, 17],
"c": [3, 8, 13, 18],
"d": [4, 9, 14, 19],
"e": [5, 10, 15, 20],
}
)
df = pandas.concat([df, entry])
print("DataFrame:\n" + str(df))
Ausgang:
Current Shape:
Empty DataFrame
Columns: [a, b, c, d, e]
Index: []
DataFrame:
a b c d e
0 1 2 3 4 5
1 6 7 8 9 10
2 11 12 13 14 15
3 16 17 18 19 20
Die Methode from_dict()
, die ein Wörterbuch enthält, das Spaltennamen und ihre entsprechenden Werte enthält, wird deklariert, aus der ein neuer DataFrame erstellt wird. Diese neu erstellte DataFrame-Instanz wird dann in der Variablen namens entry
gespeichert, die den neuen Elementen entspricht, die wir unserem ursprünglichen DataFrame hinzufügen möchten.
Nachdem der DataFrame erstellt und dem DataFrame Daten zugewiesen wurden, müssen wir nun einen Weg finden, die beiden DataFrame-Instanzen zu verbinden. Mit der Methode pandas.concat()
können wir zwei DataFrame-Instanzen verketten, und der resultierende DataFrame wird dann in der ersten Instanz gespeichert.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum