Erstellen Sie einen neuen Datenrahmen aus einem vorhandenen Datenrahmen in Pandas?

Erstellen Sie einen neuen Datenrahmen aus einem vorhandenen Datenrahmen in Pandas?

Manchmal müssen wir die vorhandenen kopieren Datenrahmen mit Daten und Indizes. Allerdings kopieren Sie das Ganze Datenrahmen ist auch eine weitere Möglichkeit, dass es eine direkte Beziehung gibt, die zwischen dem alten geschaffen wurde Datenrahmen und das neue Datenrahmen. Wenn wir Änderungen im alten vornehmen Datenrahmen, Es wird auch die Neuen beeinflussen Datenrahmen oder umgekehrt.

In diesem Artikel werden wir sehen Pandas.Datenrahmen.Copy () Methode, welches für verwendet wird für copy () DataFrame.

Wenn wir eine neue erstellen wollen Datenrahmen von einem bestehenden Datenrahmen, Dann können wir die Methode Copy () verwenden. In diesem Artikel werden wir also sehen, wie wir das verwenden können Pandas DataFrame.Kopieren() Methode, um eine andere zu erstellen Datenrahmen von einem bestehenden Datenrahmen.

Die Syntax ist unten angegeben:

Datenrahmen.kopieren (tiefen = true)

In der obigen Syntax können wir sehen, dass es tief falsche und wahr ist.

Diese beiden Werte sind sehr wichtig, um die zu verwenden Copy () Methode. Sehen wir uns in den Details zu diesen beiden Werten an.

Tief (wahr): Wann immer wir das verwenden Copy () Methode, Das Tiefe ist standardmäßig wahr. Dieser wahre Wert gibt an, dass wir alle Daten und Indizes aus dem vorhandenen kopieren müssen Datenrahmen und erstellen Sie ein neues Objekt. Angenommen, wir Manipulation der Neuen durchführen Datenrahmen, Es wird die alte nicht beeinflussen DataFrame oder umgekehrt, Das heißt, es wird keine Beziehungsverbindung zwischen alten und Neuen geben Datenrahmen, und beide können unabhängig arbeiten.

Tief (falsch): Wenn wir den Wert des tiefen Falsches behalten, erstellt der Copy () ein neues Objekt ohne Daten und Index. Es erstellt einen Verweis auf die Daten und den Index des Originaldatenrahmens. Wenn eine Manipulation zum Originaldatenrahmen, wird sich auch auf den flachen Kopierdatenframe oder umgekehrt auswirken.

Beispiel 1:

Kopieren Sie den DataFrame mit dem Deep = True:

# Python Beispiel_1.py
Pandas als PD importieren
Data = 'tv_show_name': ['The Walking Dead', 'Merlin', 'Little Evil' ',
'Geldüberfall'],
'Tv_streaming_name': ['netflix', 'fx', 'Disney Plus',
'Amazon Prime'],
'show_season': [4, 10, 4, 5],
'Hauptschauspieler': ['Rick Grimes', 'Mordred', 'Karl C. Müller',
'Sergio Marquina']
df = pd.Datenrahmen.from_dict (Daten)
print ('Originaldatenframe')
Druck (df)
drucken('_________________________________________________________')
dfcopy = df.Kopieren()
print ('kopierter Datenframe')
drucken (dfcopy)

Zeile 2: Wir importieren die Bibliothek Pandas als PD. Hier bedeutet PD, dass wir die Pandas -Bibliothek mit dem neuen Namespace -Namen als PD importieren. Wir können die PD verwenden, anstatt den vollständigen Namen Pandas zu verwenden.

Zeile 3 bis 10: Wir haben ein Diktat mit einigen Schlüsseln und Werten erstellt, in dem sich die Werte in der Liste befinden. Nach dem Erstellen des Wörterbuchs konvertieren wir dieses Diktat in a DataFrame (DF) Verwendung der Datenrahmen.from_dict () Methode.

Zeile 11 bis 12: Wir drucken unseren DataFrame (DF), der in der folgenden Ausgabe angezeigt wird.

Zeile 14: Wir erstellen eine Kopie der DF (DataFrame) Aus dem bestehenden DF (DataFrame). Hier verwenden wir keine Deep = true, da dies standardmäßig ist. Und wie in Deep = true gezeigt, erstellt es ein neues Objekt mit allen Daten und Indizes der vorhandenen Datenrahmen, und es wird keine direkte Beziehung zwischen der Kopie geben Datenrahmen und der alte Datenrahmen.

Zeile 15 bis 16: Wir drucken unsere kopierten DataFrame (DFCOPY), und die Ausgabe ist unten gezeigt:

Ausgang:

Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
Vorgang mit dem Ausgangscode 0 abgeschlossen

Beispiel 2:

In diesem Beispiel werden wir das Alte manipulieren Datenrahmen und prüfen Sie, ob dies die Auswirkungen auf die DFCOPY -Datenframe oder nicht. Hier verwenden wir das Deep = true, um den Datenrahmen zu kopieren:

# Python Beispiel_2.py
Pandas als PD importieren
Data = 'tv_show_name': ['The Walking Dead', 'Merlin', 'Little Evil' ',
'Geldüberfall'],
'Tv_streaming_name': ['netflix', 'fx', 'Disney Plus',
'Amazon Prime'],
'show_season': [4, 10, 4, 5],
'Hauptschauspieler': ['Rick Grimes', 'Mordred', 'Karl C. Müller',
'Sergio Marquina']
df = pd.Datenrahmen.from_dict (Daten)
print ('Originaldatenframe')
Druck (df)
drucken('_________________________________________________________')
dfcopy = df.Kopieren()
print ('kopierter Datenframe')
drucken (dfcopy)
drucken('_________________________________________________________')
print ("************ Manipulation im Original DF ***************")
# Jetzt führen wir Datenmanipulation im Originaldatenfream durch
# Wir ändern die Werte der Spalte ('tv_show_name') in A, B, C, D
# Jetzt werden wir sehen, dass dies den dfcopy -Datenframe beeinflusst oder nicht
df ['tv_show_name'] = df ['tv_show_name']].ersetzen (['The Walking Dead',
'Merlin', 'kleines Böses', 'Geldüberfall'], ['a', 'b', 'c', 'D'])
#Now -Drucken sowohl dfcopy (Deep = true) als auch df (Original) Datenframe
print ('Originaldatenframe')
Druck (df)
print ('kopierter Datenframe')
drucken (dfcopy)

Zeile 1 bis 18: Erklärungen sind bereits im vorherigen Programm in Beispiel 1 angegeben.

Zeile 23: Wir ersetzen das Original DF (DataFrame) Spalte (['tv_show_name']) Werte in ['A', 'B', 'C', 'D']. Jetzt werden wir prüfen, ob diese Manipulation im ursprünglichen DF (DataFrame) die dfcopy (Deep = true) beeinflusst oder nicht. Wie wir bereits wissen, gibt es keine direkte Beziehung zwischen der Verwendung des Deep = True.

Zeile 27 bis 30: Wir drucken das Original DF und Kopie (DataFrame) Wie im folgenden Ausgang gezeigt. Aus der Ausgabe können wir bestätigen, dass die im ursprünglichen DataFrame (DF) vorgenommenen Änderungen keinen Einfluss auf die Kopie (DataFrame) haben:

Ausgang:

Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
************
Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 A Netflix 4 Rick Grimes
1 b fx 10 mordred
2 C Disney Plus 4 Karl C. Müller
3 D Amazon Prime 5 Sergio Marquina
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina

Aus dem obigen Beispiel 2 können wir diesen Deep = True -Wert beim Einstellen bestätigen, das neu erstellt Datenrahmen Aus dem bestehenden Datenrahmen hat keine direkte Beziehung und kann Manipulation durchführen, ohne sich gegenseitig zu beeinflussen.

Beispiel 3:

In diesem Beispiel werden wir das Alte manipulieren Datenrahmen und prüfen Sie, ob dies die Auswirkungen auf die DFCOPY -Datenframe oder nicht. Hier verwenden wir das Deep = false, um die zu kopieren Datenrahmen:

# Python Beispiel_3.py
Pandas als PD importieren
Data = 'tv_show_name': ['The Walking Dead', 'Merlin', 'Little Evil' ',
'Geldüberfall'],
'Tv_streaming_name': ['netflix', 'fx', 'Disney Plus',
'Amazon Prime'],
'show_season': [4, 10, 4, 5],
'Hauptschauspieler': ['Rick Grimes', 'Mordred', 'Karl C. Müller',
'Sergio Marquina']
df = pd.Datenrahmen.from_dict (Daten)
print ('Originaldatenframe')
Druck (df)
drucken('_________________________________________________________')
dfcopy = df.kopieren (tiefen = false)
print ('kopierter Datenframe')
drucken (dfcopy)
drucken('_________________________________________________________')
# Jetzt führen wir Datenmanipulation im Originaldatenfream durch
# Wir ändern die Werte der Spalte ('tv_show_name') in A, B, C, D
# Jetzt werden wir sehen, dass dies den dfcopy -Datenframe beeinflusst oder nicht
df ['tv_show_name'] = df ['tv_show_name']].ersetzen (['The Walking Dead',
'Merlin', 'kleines Böses', 'Geldüberfall'], ['a', 'b', 'c', 'D'])
#Now -Drucken sowohl dfcopy (Deep = false) als auch df (Original) Datenframe
drucken('_________________________________________________________')
print ('kopierter Datenframe')
drucken (dfcopy)
print ('Originaldatenframe')
Druck (df)

Zeile 1 bis 18: Erklärungen sind bereits im Programm von Beispiel 1 angegeben. Die eine Änderung wurde in Zeile Nr. 15. Jetzt verwenden wir das Deep = false stattdessen Deep = true.

Zeile 23: Wir ersetzen das Original DF (DataFrame) Spalte (['tv_show_name']) Werte in ['A', 'B', 'C', 'D']. Jetzt werden wir überprüfen, ob diese Manipulation im ursprünglichen DF (DataFrame) die dfcopy (tiefen = false) beeinflusst oder nicht. Wie wir bereits wissen, gibt es eine direkte Beziehung zwischen der Verwendung des tiefen = false.

Zeile 27 bis 30: Wir drucken die ursprüngliche DF und kopieren (kopieren (Datenrahmen) Wie im folgenden Ausgang gezeigt. Aus der Ausgabe können wir bestätigen, dass die im Original DataFrame (DF) vorgenommenen Änderungen einen Einfluss auf die Kopie (DataFrame) haben. Die Werte der Spalte (['Tv_show_name' ']) ändern sich auch im Kopierdatenrahmen.

Ausgang:

Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 A Netflix 4 Rick Grimes
1 b fx 10 mordred
2 C Disney Plus 4 Karl C. Müller
3 D Amazon Prime 5 Sergio Marquina
Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 A Netflix 4 Rick Grimes
1 b fx 10 mordred
2 C Disney Plus 4 Karl C. Müller
3 D Amazon Prime 5 Sergio Marquina

Beispiel_4:

Kopieren Sie die vorhandenen Datenrahmen Verwenden von Zuordnungsbetreiber, das das gleiche Problem der direkten Beziehung hat wie wie Deep = False:

# Python Beispiel_4.py
Pandas als PD importieren
Data = 'tv_show_name': ['The Walking Dead', 'Merlin', 'Little Evil' ',
'Geldüberfall'],
'Tv_streaming_name': ['netflix', 'fx', 'Disney Plus',
'Amazon Prime'],
'show_season': [4, 10, 4, 5],
'Hauptschauspieler': ['Rick Grimes', 'Mordred', 'Karl C. Müller',
'Sergio Marquina']
df = pd.Datenrahmen.from_dict (Daten)
print ('Originaldatenframe')
Druck (df)
drucken('_________________________________________________________')
dfcopy = df
print ('kopierter Datenframe')
drucken (dfcopy)
drucken('_________________________________________________________')
# Jetzt führen wir Datenmanipulation im Originaldatenfream durch
# Wir ändern die Werte der Spalte ('tv_show_name') in A, B, C, D
# Jetzt werden wir sehen, dass dies den dfcopy -Datenframe beeinflusst oder nicht
df ['tv_show_name'] = df ['tv_show_name']].ersetzen (['The Walking Dead',
'Merlin', 'kleines Böses', 'Geldüberfall'], ['a', 'b', 'c', 'D'])
#Now Drucken sowohl dfcopy als auch df (Original) Datenframe
drucken('_________________________________________________________')
print ('kopierter Datenframe')
drucken (dfcopy)
print ('Originaldatenframe')
Druck (df)

Zeile 15: Im obigen Programm Beispiel 4 leiten wir die Datenrahmen zu einer anderen Variablen, ohne die Methode von Copy () zu verwenden. Dies schafft aber auch eine direkte Beziehung zwischen dem Original Datenrahmen und die kopierten Datenrahmen wie das tiefe = falsch. Die folgende Ausgabe zeigt, dass, wenn wir im Original etwas ändern Datenrahmen, dann wirkt es sich auch auf die kopierten aus Datenrahmen oder umgekehrt:

Ausgang:

Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 The Walking Dead Netflix 4 Rick Grimes
1 Merlin FX 10 Mordred
2 Little Evil Disney plus 4 Karl C. Müller
3 Geldüberfall Amazon Prime 5 Sergio Marquina
_________________________________________________________
_________________________________________________________
Kopierte Datenframe
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 A Netflix 4 Rick Grimes
1 b fx 10 mordred
2 C Disney Plus 4 Karl C. Müller
3 D Amazon Prime 5 Sergio Marquina
Originaldatenrahmen
Tv_show_name tv_streaming_name show_season Hauptdarsteller
0 A Netflix 4 Rick Grimes
1 b fx 10 mordred
2 C Disney Plus 4 Karl C. Müller
3 D Amazon Prime 5 Sergio Marquina

Abschluss:

In diesem Artikel haben wir den richtigen Weg gesehen, um das Bestehende zu kopieren Datenrahmen, Dies erstellt ein neues Objekt mit Daten und Indizes. Wie wir gesehen haben, erzeugt es, wenn wir den tiefen Wert falsch halten, einen Verweis auf die Daten und Indizes auf die neue Kopie Datenrahmen. Kopieren Sie also mit dem Zuordnungsoperator auch auf die gleiche Weise (Deep = false), wie wir bereits in diesem Artikel mit Hilfe eines Beispiels gesehen haben.

Manchmal brauchen wir nur einige der Spalten, um aus dem vorhandenen Kopieren zu kopieren Datenrahmen, nicht das Ganze. Dann können wir die folgende Methode verwenden, die der Kopie (Deep = true) ähnelt, jedoch mit dem Namen der Spalten:

new_df = old_df [['a', 'b', 'c']].Kopieren()

Vorsichtig sein. Wenn Sie nur eine Spalte haben, müssen Sie doppelte Quadratklammern verwenden. Andernfalls wird eine Serie erstellt, nicht eine Datenrahmen.

new_df = old_df [['a']].Kopieren()

Der Code für diesen Artikel ist unter dem GitHub -Link verfügbar:

https: // github.com/shekharpandey89/pandas-dataframe-copy-method