2016-01-09 15 views
7

Ich habe eine CSV-Datei mit index datetime geladen, die der letzte Tag der Monate in einem Jahr ist. Ich wollte fehlende Daten mit leeren Werten als Zeilen füllen.Fehlenden Datumsindex im Datenrahmen hinzufügen

Folgende ist meine CSV-Dateistruktur

Date Australia China 
2011-01-31 4.75 5.81 
2011-02-28 4.75 5.81 
2011-03-31 4.75 6.06 
2011-04-30 4.75 6.06 

ich alle Termine in einem Monat mit leeren Spalten füllen möchte.

Ich habe den folgenden Code versucht, aber es funktioniert nicht.

import pandas as pd 
df = pd.read_csv("data.csv", index_col="Date") 
df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN") 

Antwort

6

Sie haben die DatetimeIndex auf Ihrem Datenrahmen zu setzen, so würde ich Ihren Code in ändern:

import pandas as pd 
df = pd.read_csv("data.csv", index_col="Date") 
df.index = pd.DatetimeIndex(df.index) 
df = df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN") 
df.to_csv('test.csv') 

Diese funktionieren sollte.

EDIT: add Probe Testausgang:

... 
2011-01-24,NaN,NaN 
2011-01-25,NaN,NaN 
2011-01-26,NaN,NaN 
2011-01-27,NaN,NaN 
2011-01-28,NaN,NaN 
2011-01-29,NaN,NaN 
2011-01-30,NaN,NaN 
2011-01-31,4.75,5.81 
2011-02-01,NaN,NaN 
2011-02-02,NaN,NaN 
2011-02-03,NaN,NaN 
2011-02-04,NaN,NaN 
2011-02-05,NaN,NaN 
2011-02-06,NaN,NaN 
... 
+0

Danke für die Hilfe! funktioniert perfekt für mich. – Unnikrishnan

+0

@Unnikrishnan Sie sind willkommen, bitte überlegen Sie, die Antwort zu verbessern, wenn es gut für Ihre Zwecke funktioniert. –

+0

Immer schön, wenn eine zusätzliche Zeile das Problem löst. –

Verwandte Themen