Pandas DataFrame DataFrame.interpolate()-Funktion

  1. Syntax von Pandas.DataFrame.interpolate():
  2. Beispiel-Codes: Interpolieren Sie alle NaN-Werte in DataFrame mit der Methode DataFrame.interpolate()
  3. Beispielcodes: DataFrame.interpolate() Methode Mit dem Parameter method
  4. Beispiel-Codes: Pandas DataFrame.interpolate() Methode mit axis Parameter zur Interpolation entlang der Reihe Achse
  5. Beispielcodes: DataFrame.interpolate() Methode mit limit Parameter
  6. Beispielcodes: DataFrame.interpolate() Methode mit limit_direction Parameter
  7. Interpolieren Sie Zeitreihendaten mit der Methode DataFrame.interpolate()
Pandas DataFrame DataFrame.interpolate()-Funktion

Die Funktion Python Pandas DataFrame.interpolate() füllt NaN-Werte im DataFrame unter Verwendung einer Interpolationstechnik.

Syntax von Pandas.DataFrame.interpolate():

DataFrame.interpolate(
    method="linear",
    axis=0,
    limit=None,
    inplace=False,
    limit_direction="forward",
    limit_area=None,
    downcast=None,
    **kwargs
)

Parameter

method linear, time, index, value, nearst, zero, slinear, quadratic, cubic, barycentric, krogh, polynomial, spline, piecewise_polynomial, from_derivatives, pchip, akima oder None. Methode zur Interpolation von NaN-Werten.
axis Interpolieren Sie fehlende Werte entlang der Zeile (axis=0) oder Spalte (axis=1)
limit Ganzzahl. maximale Anzahl von aufeinanderfolgenden NaNs, die interpoliert werden sollen.
inplace Boolesch. Wenn True, modifizieren Sie den Aufrufer DataFrame an Ort und Stelle
limit_direction forward, backward oder both. Die Richtung entlang der NaNs wird interpoliert, wenn die limit angegeben wird.
limit_area None, inside, outside. Beschränkung der Interpolation bei Angabe des limit.
downcast Dictionary. Gibt Downcast von Datentypen an
**kwargs Schlüsselwortargumente für die interpolierende Funktion.

Zurück

Wenn inplace gleich True ist, ein DataFrame, der alle NaN-Werte mit der angegebenen method interpoliert; andernfalls None.

Beispiel-Codes: Interpolieren Sie alle NaN-Werte in DataFrame mit der Methode DataFrame.interpolate()

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3, None, 3],
                   'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)

filled_df = df.interpolate()

print("Interploated DataFrame:")
print(filled_df)

Ausgabe:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Interploated DataFrame:
     X    Y
0  1.0  4.0
1  2.0  6.0
2  3.0  8.0
3  3.0  5.5
4  3.0  3.0

Es interpoliert alle NaN-Werte in DataFrame unter Verwendung der linear Interpolationsmethode.

Diese Methode ist intelligenter im Vergleich zu pandas.DataFrame.fillna(), die einen festen Wert verwendet, um alle NaN Werte im DataFrame zu ersetzen.

Beispielcodes: DataFrame.interpolate() Methode Mit dem Parameter method

Wir können auch NaN-Werte in DataFrame mit verschiedenen Interpolationstechniken interpolieren, indem wir die Werte des Parameters Methode in der Funktion DataFrame.interpolate() einstellen.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3, None, 3],
                   'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)

filled_df = df.interpolate(method='polynomial', order=2)

print("Interploated DataFrame:")
print(filled_df)

Ausgabe:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Interploated DataFrame:
          X      Y
0  1.000000  4.000
1  2.000000  7.125
2  3.000000  8.000
3  3.368421  6.625
4  3.000000  3.000

Diese Methode interpoliert alle NaN-Werte im DataFrame mit der Polynom- Interpolationsmethode 2.

Hier ist order=2 das Schlüsselwortargument für die Polynom-Funktion.

Beispiel-Codes: Pandas DataFrame.interpolate() Methode mit axis Parameter zur Interpolation entlang der Reihe Achse

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3, None, 3],
                   'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)

filled_df = df.interpolate(axis=1)

print("Interploated DataFrame:")
print(filled_df)

Ausgabe:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Interploated DataFrame:
     X    Y
0  1.0  4.0
1  2.0  2.0
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0

Hier setzen wir axis=1, um die NaN-Werte entlang der Zeilenachse zu interpolieren. In der 2. Zeile wird der NaN-Wert durch lineare Interpolation entlang der 2.

In der vierten Zeile bleiben die NaN-Werte jedoch auch nach der Interpolation erhalten, da die beiden Werte in der vierten Zeile NaN sind.

Beispielcodes: DataFrame.interpolate() Methode mit limit Parameter

Der Parameter limit in der Methode DataFrame.interpolate() begrenzt die maximale Anzahl von aufeinanderfolgenden NaN-Werten, die von der Methode gefüllt werden können.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3, None, 3],
                   'Y': [4, None, None, None, 3]})
print("DataFrame:")
print(df)

filled_df = df.interpolate( limit = 1)

print("Interploated DataFrame:")
print(filled_df)

Ausgabe:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  NaN
3  NaN  NaN
4  3.0  3.0
Interploated DataFrame:
     X     Y
0  1.0  4.00
1  2.0  3.75
2  3.0   NaN
3  3.0   NaN
4  3.0  3.00

Sobald ein NaN in einer Spalte von oben gefüllt ist, bleiben die nächsten aufeinanderfolgenden NaN-Werte in derselben Spalte unverändert.

Beispielcodes: DataFrame.interpolate() Methode mit limit_direction Parameter

Der Parameter limit-direction in der Methode DataFrame.interpolate() steuert die Richtung entlang einer bestimmten Achse, in der Werte interpoliert werden.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3, None, 3],
                   'Y': [4, None, None, None, 3]})
print("DataFrame:")
print(df)

filled_df = df.interpolate(limit_direction ='backward', limit = 1)

print("Interploated DataFrame:")
print(filled_df)

Ausgabe:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  NaN
3  NaN  NaN
4  3.0  3.0
Interploated DataFrame:
     X     Y
0  1.0  4.00
1  2.0   NaN
2  3.0   NaN
3  3.0  3.25
4  3.0  3.00

Sobald ein NaN in eine Spalte von unten gefüllt ist, bleiben die nächsten aufeinanderfolgenden NaN-Werte in der gleichen Spalte unverändert.

Interpolieren Sie Zeitreihendaten mit der Methode DataFrame.interpolate()

import pandas as pd

dates=['April-10', 'April-11', 'April-12', 'April-13']
fruits=['Apple', 'Papaya', 'Banana', 'Mango']
prices=[3, None, 2, 4]

df = pd.DataFrame({'Date':dates ,
                   'Fruit':fruits ,
                   'Price': prices})

print(df)
df.interpolate(inplace=True)

print("Interploated DataFrame:")
print(df)

Ausgabe:

       Date   Fruit  Price
0  April-10   Apple    3.0
1  April-11  Papaya    NaN
2  April-12  Banana    2.0
3  April-13   Mango    4.0
Interploated DataFrame:
       Date   Fruit  Price
0  April-10   Apple    3.0
1  April-11  Papaya    2.5
2  April-12  Banana    2.0
3  April-13   Mango    4.0

Aufgrund von inplace=True wird der ursprüngliche DataFrame nach dem Aufruf der Funktion interpolate() modifiziert.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Pandas DataFrame