Pandas DataFrame DataFrame.interpolate()-Funktion

Suraj Joshi 30 Januar 2023
  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.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame