Mam zestaw danych, jak poniżej. Mamy tylko dane na ostatni dzień miesiąca, próbuję interpolować resztę, czy jest to właściwy sposób na zrobienie tego?Python pandas imageframe interpolate brakujące dane
Date Australia China
2011-01-01 NaN NaN
2011-01-02 NaN NaN
- - -
- - -
2011-01-31 4.75 5.81
2011-02-01 NaN NaN
2011-02-02 NaN NaN
- - -
- - -
2011-02-28 4.75 5.81
2011-03-01 NaN NaN
2011-03-02 NaN NaN
- - -
- - -
2011-03-31 4.75 6.06
2011-04-01 NaN NaN
2011-04-02 NaN NaN
- - -
- - -
2011-04-30 4.75 6.06
Dla interpolować to dataframe znaleźć brakujących wartości NaN Używam następujący kod
import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.index = pd.DatetimeIndex(df.index)
df.interpolate(method='linear', axis=0).ffill().bfill()
Ale otrzymuję błąd „Błąd typu:. Nie można interpolacji ze wszystkimi Nans”
Co może być nie tak, jak mogę to naprawić?
Dzięki.
Błąd jest dość oczywisty. Możesz spróbować, upuszczając NaN, jak na ten http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html – station
Witam, dziękuję za pomoc, ale zamiast NaNs, co mogę wypełnić te rzędy? – Unnikrishnan
@Unnikrishnan dobre odpowiedzi już zostały podane, myślę. Twoje dane są dość skąpe, więc możesz zapytać, czy dobrze jest właściwie interpolować tak ogromne ilości danych. Na ile jesteś pewien, że te wartości będą nieco poprawne? –