Vektorisierte Implementierung zum Erstellen mehrerer Zeilen aus einer einzelnen Zeile in pandas dataframe

Für jede Zeile in der Eingabetabelle müssen mehrere Zeilen generiert werden, indem der Datumsbereich auf der Grundlage des Monats getrennt wird. (Bitte beachten Sie die folgende Beispielausgabe).

s gibt einen einfachen iterativen Ansatz, um Zeilen für Zeilen zu konvertieren, aber er ist bei großen Datenrahmen sehr langsa

Kann jemand einen vektorisierten Ansatz vorschlagen, z. B. mithilfe von apply (), map () usw., um das Ziel zu erreichen?

Die Ausgabetabelle ist eine neue Tabelle.

Eingang

ID, START_DATE, END_DATE
1, 2010-12-08, 2011-03-01
2, 2010-12-10, 2011-01-12
3, 2010-12-16, 2011-03-07

Ausgabe

ID, START_DATE, END_DATE, NUMBER_DAYS, ACTION_DATE
1, 2010-12-08, 2010-12-31, 23, 201012
1, 2010-12-08, 2011-01-31, 54, 201101
1, 2010-12-08, 2011-02-28, 82, 201102
1, 2010-12-08, 2011-03-01, 83, 201103
2, 2010-12-10, 2010-12-31, 21, 201012
2, 2010-12-10, 2011-01-12, 33, 201101
3, 2010-12-16, 2010-12-31, 15, 201012
4, 2010-12-16, 2011-01-31, 46, 201101
5, 2010-12-16, 2011-02-28, 74, 201102
6, 2010-12-16, 2011-03-07, 81, 201103

Antworten auf die Frage(4)

Ihre Antwort auf die Frage