HOWTO · Pandas

Pandas DatenFrame kopieren

In diesem Tutorial wird vorgestellt, wie wir mit der Methode `DataFrame.copy()` eine Kopie eines DataFrame-Objekts erstellen können.

Auf dieser Seite

In diesem Tutorial wird vorgestellt, wie wir mit der Methode DataFrame.copy() eine Kopie eines DataFrame-Objekts erstellen können.

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708],
        "Cost": ["300", "400", "350"],
    }
)

print(items_df)

Ausgabe:

    Id Cost
0  302  300
1  504  400
2  708  350 

Anhand des obigen Beispiels werden wir die Verwendung der Methode DataFrame.copy() in Pandas demonstrieren.

Syntax der Methode pandas.DataFrame.copy()

DataFrame.copy(deep=True)

Sie gibt eine Kopie des DataFrame zurück. deep ist standardmäßig True, was bedeutet, dass jede Änderung, die in der Kopie vorgenommen wird, nicht im Original-DataFrame reflektiert wird. Wenn wir jedoch deep=False setzen, werden alle Änderungen, die in der Kopie vorgenommen werden, auch im Original-DataFrame wiedergegeben.

Kopieren eines Pandas DataFrame mit der Methode pandas.DataFrame.copy()

import pandas as pd
import numpy as np

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708],
        "Cost": ["300", "400", "350"],
    }
)

deep_copy = items_df.copy()

print("Original DataFrame before changing value in copy DataFrame:")
print(items_df, "\n")

print("Copy DataFrame before changing value in copy DataFrame:")
print(deep_copy, "\n")

deep_copy.loc[0, "Cost"] = np.nan

print("Original DataFrame after changing value in copy DataFrame:")
print(items_df, "\n")

print("Copy DataFrame after changing value in copy DataFrame:")
print(deep_copy, "\n")

Ausgabe:

Original DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Copy DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Original DataFrame after changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Copy DataFrame after changing value in copy DataFrame:
    Id Cost
0  302  NaN
1  504  400
2  708  350 

Es wird eine Kopie des DataFrames items_df als deep_copy erstellt. Wenn wir einen Wert der Kopie deep_copy ändern, gibt es keine Änderung im ursprünglichen DataFrame items_df. Wir setzen den Wert der Spalte Kosten der 1. Zeile in deep_copy auf NaN, aber items_df bleibt unverändert.

Kopieren von Pandas DataFrame durch Zuweisung des DataFrame an eine Variable

import pandas as pd
import numpy as np

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708],
        "Cost": ["300", "400", "350"],
    }
)

copy_cost = items_df["Cost"]

print("Cost column of Original DataFrame before changing value in copy DataFrame:")
print(items_df, "\n")

print("Cost column of Copied DataFrame before changing value in copy DataFrame:")
print(copy_cost, "\n")

copy_cost[0] = np.nan

print("Cost column of Original DataFrame after changing value in copy DataFrame:")
print(copy_cost, "\n")

print("Cost column of Copied DataFrame after changing value in copy DataFrame:")
print(copy_cost, "\n")

Ausgabe:

Cost column of Original DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Cost column of Copied DataFrame before changing value in copy DataFrame:
0    300
1    400
2    350
Name: Cost, dtype: object 

Cost column of Original DataFrame after changing value in copy DataFrame:
0    NaN
1    400
2    350
Name: Cost, dtype: object 

Cost column of Copied DataFrame after changing value in copy DataFrame:
0    NaN
1    400
2    350
Name: Cost, dtype: object 

Es wird eine Kopie der Spalte Cost des DataFrames items_df als copy_cost erstellt.