Multipliziere Spalten mit einem Skalar in Pandas

Olorunfemi Akinlua 21 Juni 2023
  1. Verwenden Sie die direkte Zuweisung, um Spalten mit einem Skalar in Pandas zu multiplizieren
  2. Verwenden Sie die Funktion Multiplizieren, um Spalten mit einem Skalar in Pandas zu multiplizieren
  3. Verwenden Sie die apply-Funktion, um Spalten mit einem Skalar in Pandas zu multiplizieren
  4. Verwenden Sie den loc-Operator, um Spalten mit einem Skalar in Pandas zu multiplizieren
  5. Verwenden Sie den iloc-Operator, um Spalten mit einem Skalar in Pandas zu multiplizieren
Multipliziere Spalten mit einem Skalar in Pandas

Wir verwenden Pandas für viele Dataframe-Operationen, vom Auffüllen von Daten bis zum Bereinigen der genannten Daten. Der Pandas-Datenrahmen bietet Methoden für Daten und mathematische Operationen mit Python.

Verschiedene mathematische Operationen scheinen weniger intuitiv auszuführen zu sein, aber mit Python sind sie viel einfacher als Sie denken. Eine solche Operation ist die Multiplikation von Pandas-Spalten mit Skalarwerten.

Dieser Artikel zeigt fünf Möglichkeiten, Spalten mit einem Skalar in Pandas innerhalb verschiedener Komplexitäten zu multiplizieren.

Verwenden Sie die direkte Zuweisung, um Spalten mit einem Skalar in Pandas zu multiplizieren

Bevor wir uns mit der Multiplikation von Spalten mit Skalarwerten in Pandas unter Verwendung von In-Place-Zuweisung befassen, wollen wir zeigen, was wir erreichen wollen.

Wir haben einen Datenrahmen mit sieben Spalten.

Datenrahmen mit sieben Spalten

Nun wollen wir eine Spalte (Eins) mit einem Skalarwert (5) multiplizieren.

multiplizierter Datenrahmen mit sieben Spalten

Also, wie erreichen wir das? Der erste Ansatz verwendet eine In-Place-Zuweisung, eine Operation, bei der wir zusätzlich zur Zuweisung eines Werts mit dem Wert arbeiten.

Unter Verwendung der direkten Zuweisung überschreiben wir den Wert der ersten Operandenvariablen mit dem Ergebnis der Operation, die mit dem Wert des Operanden durchgeführt wurde. Visuell entspricht x *= 3 x = x * 3, wobei der Wert der Variablen x mit 3 multipliziert und dann derselben Variablen x zugewiesen wird.

Um dies zu veranschaulichen, können wir einen Pandas-Datenrahmen mit 6 Zeilen und 7 Spalten erstellen, die mit Einsen gefüllt sind, denen Spaltennamen zugewiesen wurden, und die direkte Zuweisung für die Spalte Eins durchführen.

import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.ones((6, 7)), columns=["one", "two", "three", "four", "five", "six", "seven"]
)

print(df)

Ausgang:

one  two  three  four  five  six  seven
0  1.0  1.0    1.0   1.0   1.0  1.0    1.0
1  1.0  1.0    1.0   1.0   1.0  1.0    1.0
2  1.0  1.0    1.0   1.0   1.0  1.0    1.0
3  1.0  1.0    1.0   1.0   1.0  1.0    1.0
4  1.0  1.0    1.0   1.0   1.0  1.0    1.0
5  1.0  1.0    1.0   1.0   1.0  1.0    1.0

Um die direkte Zuweisung zu verwenden, müssen wir die Pandas-Spalte auswählen, die wir mit dem Skalarwert multiplizieren möchten, indem wir entweder die Punktnotation oder die Klammernotation verwenden. Unter Verwendung der Klammernotation wählen wir die Spalte eins aus.

df["one"] *= 5

print(df)

Ausgang:

one  two  three  four  five  six  seven
0  5.0  1.0    1.0   1.0   1.0  1.0    1.0
1  5.0  1.0    1.0   1.0   1.0  1.0    1.0
2  5.0  1.0    1.0   1.0   1.0  1.0    1.0
3  5.0  1.0    1.0   1.0   1.0  1.0    1.0
4  5.0  1.0    1.0   1.0   1.0  1.0    1.0
5  5.0  1.0    1.0   1.0   1.0  1.0    1.0

Wie Sie sehen, wurde die Spalte Eins mit dem Skalarwert (5) multipliziert.

Verwenden Sie die Funktion Multiplizieren, um Spalten mit einem Skalar in Pandas zu multiplizieren

Anstatt den Multiplikationsoperator in einem direkten Zuweisungsansatz zu verwenden, können Sie die von Pandas bereitgestellte Methode multiply method verwenden. Wir wenden die Methode in der gewünschten Spalte an und übergeben den Skalarwert als Argument für die Methode multiplizieren.

Um die Methode Multiplizieren zu demonstrieren, multiplizieren wir die Spalte Zwei mit dem Skalarwert 7 (Zugriff auf die Spalte Zwei mit der Punktnotation).

df.two = df.two.multiply(7)
print(df)

Ausgang:

one  two  three  four  five  six  seven
0  5.0  7.0    1.0   1.0   1.0  1.0    1.0
1  5.0  7.0    1.0   1.0   1.0  1.0    1.0
2  5.0  7.0    1.0   1.0   1.0  1.0    1.0
3  5.0  7.0    1.0   1.0   1.0  1.0    1.0
4  5.0  7.0    1.0   1.0   1.0  1.0    1.0
5  5.0  7.0    1.0   1.0   1.0  1.0    1.0

Verwenden Sie die apply-Funktion, um Spalten mit einem Skalar in Pandas zu multiplizieren

Ähnlich wie wir die Methode multiply verwendet haben, können wir die Methode apply – eine Funktion höherer Ordnung – verwenden, um Spalten mit einem Skalar in Pandas zu multiplizieren. Die apply-Methode verwendet eine lambda-Funktion, die eine Aktion an den Zellelementen der Spalte ausführt, auf die sie angewendet wird.

Wir können also mit der Funktion lambda eine Multiplikationsaktion für das Zellenelement angeben.

Um zu veranschaulichen, wie das funktioniert, multiplizieren wir die Spalte drei (aus dem in früheren Abschnitten verwendeten Datenrahmen) mit 9 mit der Methode apply.

df["three"] = df["three"].apply(lambda x: x * 9)
print(df)

Ausgang:

one  two  three  four  five  six  seven
0  5.0  7.0    9.0   1.0   1.0  1.0    1.0
1  5.0  7.0    9.0   1.0   1.0  1.0    1.0
2  5.0  7.0    9.0   1.0   1.0  1.0    1.0
3  5.0  7.0    9.0   1.0   1.0  1.0    1.0
4  5.0  7.0    9.0   1.0   1.0  1.0    1.0
5  5.0  7.0    9.0   1.0   1.0  1.0    1.0

Sie können sehen, dass alle Zellen in der Spalte drei mit 9 multipliziert wurden, basierend auf der lambda-Funktion. Dieser Ansatz kann stressig erscheinen, kann aber funktioneller sein, wenn der Wert, den wir mit der Spalte multiplizieren möchten, je nach Zelle variieren kann.

Verwenden Sie den loc-Operator, um Spalten mit einem Skalar in Pandas zu multiplizieren

Außerdem können wir den Operator loc verwenden, um die Spalte in Pandas mit einem Skalar zu multiplizieren. Mit dem Operator loc können wir einen Teil eines Datenrahmens indizieren.

Wir können basierend auf Zeilen und Spalten indizieren. Für uns müssen wir basierend auf der benötigten Spalte indizieren.

Die typische Syntax für den Operator loc ist unten angegeben.

DataFrame.loc[rows, columns]

Damit wir jedoch nur auf die Spalte zugreifen können, können wir die folgende Syntax verwenden.

DataFrame.loc[:, columns]

Das : gibt an, dass es alle Zeilen haben möchte. Zusammengenommen bedeutet die obige Syntax, auf alle Zeilen in der angegebenen Spalte zuzugreifen.

Jetzt verwenden wir die obige Syntax, um die Spalte vier zu erhalten, und verwenden die direkte Zuweisung, um die Werte mit 11 zu multiplizieren.

df.loc[:, "four"] *= 11
print(df)

Ausgang:

one  two  three   four  five  six  seven
0  5.0  7.0    9.0  11.0   1.0  1.0   1.0
1  5.0  7.0    9.0  11.0   1.0  1.0   1.0
2  5.0  7.0    9.0  11.0   1.0  1.0   1.0
3  5.0  7.0    9.0  11.0   1.0  1.0   1.0
4  5.0  7.0    9.0  11.0   1.0  1.0   1.0
5  5.0  7.0    9.0  11.0   1.0  1.0   1.0

Dies erscheint unnötig lang, aber dieser Ansatz ist funktionsfähig, wenn wir mehrere Spalten multiplizieren möchten. Wenn wir beispielsweise die Spalten fünf und sechs mit 13 multiplizieren wollen, übergeben wir als zweites Argument an den Operator loc eine Liste mit den Namen der Spalten.

df.loc[:, ["five", "six"]] *= 13
print(df)

Ausgang:

one  two  three  four  five   six  seven
0  5.0  7.0    9.0  11.0  13.0  13.0    1.0
1  5.0  7.0    9.0  11.0  13.0  13.0    1.0
2  5.0  7.0    9.0  11.0  13.0  13.0    1.0
3  5.0  7.0    9.0  11.0  13.0  13.0    1.0
4  5.0  7.0    9.0  11.0  13.0  13.0    1.0
5  5.0  7.0    9.0  11.0  13.0  13.0    1.0

Verwenden Sie den iloc-Operator, um Spalten mit einem Skalar in Pandas zu multiplizieren

Ähnlich wie der Operator loc akzeptiert er nur ganzzahlige Werte als Index für die Werte, auf die wir zugreifen möchten. Im Gegensatz zu loc, wo wir den Namen der Spalte verwenden können, verwenden wir den Indexwert der Spalte.

Denken Sie auch daran, dass der Index bei 0 und nicht bei 1 beginnt. Wenn wir also auf die Spalte sieben zugreifen und mit 15 multiplizieren wollen, verwenden wir den Indexwert 6.

df.iloc[:, 6] = df.iloc[:, 6] * 15
print(df)

Ausgang:

one  two  three  four  five   six  seven
0  5.0  7.0    9.0  11.0  13.0  13.0   15.0
1  5.0  7.0    9.0  11.0  13.0  13.0   15.0
2  5.0  7.0    9.0  11.0  13.0  13.0   15.0
3  5.0  7.0    9.0  11.0  13.0  13.0   15.0
4  5.0  7.0    9.0  11.0  13.0  13.0   15.0
5  5.0  7.0    9.0  11.0  13.0  13.0   15.0
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Pandas DataFrame Column