2017-03-25 5 views
1
  name_col 
datetime   
2017-03-22  0.2 

ich so mehrere Zeilen bis zum heutigen Datum (2017.03.25) hinzufügen möchten, dass Datenrahmen resultierende wie folgt aussieht:Fügen Sie mehrere Zeilen für jede Datetime in Pandas Datenrahmen

  name_col 
datetime   
2017-03-22  0.2 
2017-03-23  0.0 
2017-03-24  0.0 
2017-03-25  0.0 

Wie kann ich hinzufügen mehrere Zeilen für jede Datetime? Ich kann aktuelles Datum als

from datetime import datetime, timedelta, date 
date.today() 
+1

Ich würde Ihnen empfehlen, zu akzeptieren [@ NickilMaveli-Lösung] (http://stackoverflow.com/a/43014363/ 5741205) - es ist mehr idiomatisch – MaxU

+0

danke @MaxU, für Ihre Lösung und auch Großzügigkeit – user308827

Antwort

2

erhalten Sie Gebrauch von DF.reindex machen können den ursprünglichen DF's Indizes zu einer neuen Reihe von Indizes für einen erweiterten Zeitraum erzeugt auszurichten.

Beachten Sie, dass pd.date_range erzeugt eine Frequenz auf tägliche Frequenz-Offset entspricht und so die Notwendigkeit, diese nicht explizit angeben, wie es freq Parameter ist.

from datetime import date 

df.reindex(pd.date_range(df.index[0], date.today(), name=df.index.name), fill_value=0) 

enter image description here

3

Sie können auch .resample() Methode verwenden:

In [98]: df 
Out[98]: 
      name_col 
datetime 
2017-03-22  0.2 

In [99]: df.loc[pd.to_datetime(pd.datetime.now().date())] = 0 

In [100]: df 
Out[100]: 
      name_col 
datetime 
2017-03-22  0.2 
2017-03-25  0.0 

In [101]: df.resample('D').bfill() 
Out[101]: 
      name_col 
datetime 
2017-03-22  0.2 
2017-03-23  0.0 
2017-03-24  0.0 
2017-03-25  0.0 
Verwandte Themen