Angesichts der folgenden Datenrahmen:Pandas erstellen Datumsbereich Ohne Wochenenden
import pandas as pd
df=pd.DataFrame({'A':['a','b','c'],
'first_date':['2015-08-31 00:00:00','2015-08-24 00:00:00','2015-08-25 00:00:00']})
df.first_date=pd.to_datetime(df.first_date) #(dtype='<M8[ns]')
df['last_date']=pd.to_datetime('5/6/2016') #(dtype='datetime64[ns]')
df
A first_date last_date
0 a 2015-08-31 2016-05-06
1 b 2015-08-24 2016-05-06
2 c 2015-08-25 2016-05-06
Ich möchte eine neue Spalte erstellen, die die Liste (oder Array) enthält der Daten zwischen ‚first_date‘ und ‚last_date‘ was Wochenenden ausschließt.
Bisher habe ich versucht, dies:
pd.date_range(df['first_date'],df['last_date'])
... aber dieser Fehler auftritt:
TypeError: Cannot convert input to Timestamp
Ich habe auch versucht, diese vor pd.date_range ...
pd.Timestamp(df['first_date'])
... aber keine Würfel.
Vielen Dank im Voraus!
PS:
Nach dieser Hürde, ich werde in anderen Listen von Terminen versuchen, suchen und, wenn sie innerhalb des erzeugten Array fallen (pro Zeile in ‚A‘), so dass sie dann aus der Liste subtrahiere oder Array). Ich werde es als eine separate Frage veröffentlichen.
Dank! Wie kommt es, dass Sie die Anforderung für einen Zeitstempel umgehen, indem Sie auf den Datenrahmen anwenden und eine Liste mit einer Liste aufnehmen? –
Sie haben 'date_range (timeseries1, timeseries2)' gemacht, wenn es 'date_range (timestamp1, timestampe2)' hätte sein sollen. Mit 'apply (axis = 1)' gehen wir Zeile für Zeile, greifen die Zeitstempel für diese Zeile und erhalten den Datumsbereich für diese Zeile. Die Serie/listOlist-Sache ist nur ein Trick, um die Liste in eine einzelne Datenzellenzelle zu bringen. Wir hätten auch andere Dinge tun können. – piRSquared
Danke nochmal. Follow-up Frage hier gepostet: http://stackoverflow.com/questions/37653493/pandas-remove-elements-from-datetimeindex-per-list-elements-in-range –