Pandas Erstellen von Spalten basierend auf anderen Spalten
- Neue Spalten in Pandas DataFrame basierend auf den Werten anderer Spalten mit der elementweisen Operation erzeugen
-
Erzeugen neuer Spalten im Pandas DataFrame basierend auf den Werten anderer Spalten mit der Methode
DataFrame.apply()
In diesem Tutorial wird vorgestellt, wie wir neue Spalten in Pandas DataFrame basierend auf den Werten anderer Spalten im DataFrame erstellen können, indem wir eine Funktion auf jedes Element einer Spalte anwenden oder die Methode DataFrame.apply()
verwenden.
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Cost": [300, 400, 350, 100, 1000, 400],
"Discount(%)": [10, 15, 5, 0, 2, 7],
}
)
print(items_df)
Ausgabe:
Id Name Cost Discount(%)
0 302 Watch 300 10
1 504 Camera 400 15
2 708 Phone 350 5
3 103 Shoes 100 0
4 343 Laptop 1000 2
5 565 Bed 400 7
Anhand des oben gezeigten DataFrame demonstrieren wir im Codeschnipsel, wie wir neue Spalten im Pandas DataFrame auf Basis der Werte anderer Spalten im DataFrame erstellen können.
Neue Spalten in Pandas DataFrame basierend auf den Werten anderer Spalten mit der elementweisen Operation erzeugen
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Actual Price": [300, 400, 350, 100, 1000, 400],
"Discount(%)": [10, 15, 5, 0, 2, 7],
}
)
print("Initial DataFrame:")
print(items_df, "\n")
items_df["Final Price"] = items_df["Actual Price"] - (
(items_df["Discount(%)"] / 100) * items_df["Actual Price"]
)
print("DataFrame after addition of new column")
print(items_df, "\n")
Ausgabe:
Initial DataFrame:
Id Name Actual Price Discount(%)
0 302 Watch 300 10
1 504 Camera 400 15
2 708 Phone 350 5
3 103 Shoes 100 0
4 343 Laptop 1000 2
5 565 Bed 400 7
DataFrame after addition of new column
Id Name Actual Price Discount(%) Final Price
0 302 Watch 300 10 270.0
1 504 Camera 400 15 340.0
2 708 Phone 350 5 332.5
3 103 Shoes 100 0 100.0
4 343 Laptop 1000 2 980.0
5 565 Bed 400 7 372.0
Es berechnet den Endpreis jedes Produkts, indem es den Wert des Rabattbetrags von der Spalte Actual Price
im DataFrame subtrahiert. Dann weist es die Series
der Endpreiswerte der Spalte Final Price
des DataFrame items_df
zu.
Erzeugen neuer Spalten im Pandas DataFrame basierend auf den Werten anderer Spalten mit der Methode DataFrame.apply()
import pandas as pd
items_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 343, 565],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
"Actual_Price": [300, 400, 350, 100, 1000, 400],
"Discount_Percentage": [10, 15, 5, 0, 2, 7],
}
)
print("Initial DataFrame:")
print(items_df, "\n")
items_df["Final Price"] = items_df.apply(
lambda row: row.Actual_Price - ((row.Discount_Percentage / 100) * row.Actual_Price),
axis=1,
)
print("DataFrame after addition of new column")
print(items_df, "\n")
Ausgabe:
Initial DataFrame:
Id Name Actual_Price Discount_Percentage
0 302 Watch 300 10
1 504 Camera 400 15
2 708 Phone 350 5
3 103 Shoes 100 0
4 343 Laptop 1000 2
5 565 Bed 400 7
DataFrame after addition of new column
Id Name Actual_Price Discount_Percentage Final Price
0 302 Watch 300 10 270.0
1 504 Camera 400 15 340.0
2 708 Phone 350 5 332.5
3 103 Shoes 100 0 100.0
4 343 Laptop 1000 2 980.0
5 565 Bed 400 7 372.0
Die in der Methode apply()
definierte Lambda-Funktion wird auf jede Zeile des DataFrame items_df
angewendet und die Ergebnisreihe schließlich der Spalte Final Price
des DataFrame items_df
zugewiesen.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame Column
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- So erhalten Sie die Summe der Pandas-Spalte
- Wie man die Reihenfolge der Pandas DataFrame-Spalten ändert
- Wie man eine DataFrame-Spalte in eine Zeichenkette in Pandas konvertiert