Wenden Sie die Quadratwurzelfunktion auf eine Spalte von Pandas-Datenrahmen an

Mehvish Ashiq 21 Juni 2023
  1. Einführung in die Quadratwurzel
  2. Wenden Sie die Quadratwurzelfunktion auf eine Spalte von Pandas-Datenrahmen an
  3. Verwenden Sie .astype(int), um ganzzahlige Quadratwurzeln in Pandas zu bestimmen
Wenden Sie die Quadratwurzelfunktion auf eine Spalte von Pandas-Datenrahmen an

In diesem Tutorial lernen Sie, wie Sie die Quadratwurzelfunktion auf eine Spalte von Pandas Data Frame anwenden, indem Sie den Potenzierungsoperator, die Funktionen np.sqrt(), lambda und apply() verwenden. Außerdem werden wir lernen, wie man .astype(int) verwendet, um ganzzahlige Quadratwurzeln zu bestimmen.

Einführung in die Quadratwurzel

Bevor man sich der Quadratwurzel zuwendet, muss man verstehen, was ein Quadrat ist und wie wir es berechnen können. Fangen wir damit an.

In der Mathematik haben wir gelernt, dass das Quadrat einer Zahl berechnet wird, indem die angegebene Zahl mit sich selbst multipliziert wird, zum Beispiel Quadrat von 3 = 3x3 = 9.

Das Quadrat einer beliebigen Zahl n wird durch eine hochgestellte 2 dargestellt, die wir als n^2 schreiben können; es muss die folgenden beiden Eigenschaften erfüllen:

  1. Das Quadrat der angegebenen Zahl kann eine Fließkommazahl oder eine Ganzzahl sein.
  2. Das Quadrat einer bestimmten Zahl ist immer eine positive Zahl, weil das Produkt zweier negativer Zahlen eine positive Zahl ergibt.

Jetzt sind wir bereit, Quadratwurzeln zu lernen. Die Quadratwurzel von n^2 ist n, dargestellt als √n (auch dargestellt als n^(1/2)).

Es ist nützlich für verschiedene wissenschaftliche und mathematische Funktionen.

Jetzt haben wir ein starkes Verständnis der Quadratwurzel. Lassen Sie uns lernen, wie wir sie mit Python berechnen können, insbesondere, wie wir die Quadratwurzelfunktion auf eine Spalte des Datenrahmens der Pandas anwenden können.

Wenden Sie die Quadratwurzelfunktion auf eine Spalte von Pandas-Datenrahmen an

Wir können die Quadratwurzelfunktion mit verschiedenen Ansätzen anwenden; einige von ihnen sind unten angegeben. Um sie alle nutzen zu können, benötigen wir einen Datenrahmen; zum Beispiel haben wir wie folgt:

import pandas as pd

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)

df

Hier haben wir ein Wörterbuch mit Schlüssel-Wert-Paaren, die mit pd.DataFrame() in einen Python-Datenrahmen konvertiert werden, der die Daten und ein Array von Spaltennamen als Parameter verwendet.

Dann fügen wir dem Datenrahmen eine neue Spalte Gewinne+Verluste hinzu, die die Summe der Spalten Gewinne und Verluste enthält. Beachten Sie zum besseren Verständnis die folgende Ausgabe.

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste
0 2020 Bären 25 5 30
1 2021 Packer 10 5 15
2 2022 Löwen 6 16 22

Dieser Datenrahmen wird in den folgenden Methoden verwendet, bei denen wir die Quadratwurzel der Spalten Gewinne, Verluste und Gewinne+Verluste finden.

Methode 1: Verwenden Sie den Potenzierungsoperator, um die Quadratwurzel zu berechnen

Beispielcode:

import pandas as pd

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)


df["sqrt(wins)"] = df[["wins"]] ** 0.5
df["sqrt(losses)"] = df[["losses"]] ** 0.5
df["sqrt(wins+losses)"] = df[["wins+losses"]] ** 0.5

df

Ausgang:

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste sqrt (gewinnt) sqrt (Verluste) sqrt(Gewinne+Verluste)
0 2020 Bären 25 5 30 5.000000 2.236068 5.477226
1 2021 Packer 10 5 15 3.162278 2.236068 3.872983
2 2022 Löwen 6 16 22 2.449490 4.000000 4.690416

Der obige Code iteriert über die Spalte des angegebenen Datenrahmens und verwendet Potenzierung (**), einen arithmetischen Operator, der als Potenzoperator bekannt ist.

Wir haben bereits gelernt, dass die Quadratwurzel der Zahl n als √n dargestellt wird, was gleich n^(1/2) ist, was in Python auch als n**0.5 geschrieben wird. Hier wird n durch jeden Wert der angegebenen Spalte eines Pandas-Datenrahmens ersetzt.

Methode 2: Verwenden Sie np.sqrt(), um die Quadratwurzel zu berechnen

Beispielcode:

import pandas as pd
import numpy as np

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)

df["sqrt(wins)"] = np.sqrt(df[["wins"]])
df["sqrt(losses)"] = np.sqrt(df[["losses"]])
df["sqrt(wins+losses)"] = np.sqrt(df[["wins+losses"]])

df

Ausgang:

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste sqrt (gewinnt) sqrt (Verluste) sqrt(Gewinne+Verluste)
0 2020 Bären 25 5 30 5.000000 2.236068 5.477226
1 2021 Packer 10 5 15 3.162278 2.236068 3.872983
2 2022 Löwen 6 16 22 2.449490 4.000000 4.690416

Dieses Code-Snippet verwendet die Funktion sqrt() der Bibliothek NumPy, die ein Array von Eingabewerten verwendet, deren Quadratwurzeln bestimmt werden müssen.

Methode 3: Verwenden Sie den lambda-Ausdruck, um die Quadratwurzel zu berechnen

Beispielcode:

import pandas as pd

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)

df["sqrt(wins)"] = df.transform(lambda x: (df[["wins"]] ** 0.5))
df["sqrt(losses)"] = df.transform(lambda x: (df[["losses"]]) ** 0.5)
df["sqrt(wins+losses)"] = df.transform(lambda x: (df[["wins+losses"]]) ** 0.5)

df

Ausgang:

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste sqrt (gewinnt) sqrt (Verluste) sqrt(Gewinne+Verluste)
0 2020 Bären 25 5 30 5.000000 2.236068 5.477226
1 2021 Packer 10 5 15 3.162278 2.236068 3.872983
2 2022 Löwen 6 16 22 2.449490 4.000000 4.690416

Hier verwenden wir den lambda-Ausdruck (der eine Funktion ist) mit Potenzierung (**), um die Quadratwurzeln der angegebenen Spalten zu bestimmen. Wir verwenden lambda-Ausdrücke, wenn wir die Praktikabilität und Einfachheit des Codes bevorzugen.

Wir verwenden auch die Methode transform(), die eine Funktion auf self aufruft und einen DataFrame mit transformierten Elementen/Werten erzeugt. Es gibt einen DataFrame zurück, der die gleiche Länge wie self hat.

Methode 4: Verwenden Sie apply(), um die Quadratwurzel zu berechnen

Beispielcode:

import pandas as pd
import numpy as np

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)


df["sqrt(wins)"] = df[["wins"]].apply(np.sqrt)
df["sqrt(losses)"] = df[["losses"]].apply(np.sqrt)
df["sqrt(wins+losses)"] = df[["wins+losses"]].apply(np.sqrt)

df

Ausgang:

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste sqrt (gewinnt) sqrt (Verluste) sqrt(Gewinne+Verluste)
0 2020 Bären 25 5 30 5.000000 2.236068 5.477226
1 2021 Packer 10 5 15 3.162278 2.236068 3.872983
2 2022 Löwen 6 16 22 2.449490 4.000000 4.690416

Dieser Code-Fence verwendet die apply()-Methode aus der Pandas-Bibliothek, die np.sqrt als Parameter nimmt und einen DataFrame von Quadratwurzelwerten zurückgibt.

Sie haben vielleicht bemerkt, dass alle obigen Ansätze Quadratwurzeln als float-Werte zurückgeben. Was ist, wenn wir sie als ganzzahlige Werte wollen?

Verwenden Sie .astype(int), um ganzzahlige Quadratwurzeln in Pandas zu bestimmen

Beispielcode:

import pandas as pd
import numpy as np

data = {
    "years": [2020, 2021, 2022],
    "teams": ["Bears", "Packers", "Lions"],
    "wins": [25, 10, 6],
    "losses": [5, 5, 16],
}

df = pd.DataFrame(data, columns=["years", "teams", "wins", "losses"])
df["wins+losses"] = df[["wins", "losses"]].sum(axis=1)


df["sqrt(wins)"] = df[["wins"]].apply(np.sqrt).astype(int)
df["sqrt(losses)"] = df[["losses"]].apply(np.sqrt).astype(int)
df["sqrt(wins+losses)"] = df[["wins+losses"]].apply(np.sqrt).astype(int)

df

Ausgang:

Jahre Mannschaften Gewinnt Verluste Gewinne + Verluste sqrt (gewinnt) sqrt (Verluste) sqrt(Gewinne+Verluste)
0 2020 Bären 25 5 30 5 2 5
1 2021 Packer 10 5 15 3 2 3
2 2022 Löwen 6 16 22 2 4 4

Ebenso können wir .astype(int) mit anderen Ansätzen verwenden. Denken Sie daran, dass das Finden des Quadrats von 0 keinen Fehler verursacht, weil 0 mit irgendetwas potenziert auch 0 wäre, aber Sie könnten ValueError oder NaN erhalten, wenn Sie versuchen, die Quadratwurzel zu finden einer negativen Zahl.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook