DataFrame erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jma23
User
Beiträge: 2
Registriert: Samstag 18. April 2020, 22:14

Hallo zusammen,

gibt es einen eleganteren Weg folgendes DataFrame zu erstellen?

Code: Alles auswählen

df = pd.DataFrame({'itemID' : [],'date' : []})
for n in range(1,10464,1):
    for i in pd.date_range('2018-01-01', '2018-06-30'):
        df = df.append({'itemID' : n , 'date' : i} , ignore_index=True)
einfachTobi
User
Beiträge: 513
Registriert: Mittwoch 13. November 2019, 08:38

Du kannst die Schleife weg lassen.

Code: Alles auswählen

df = pd.DataFrame(range(1, 182), pd.date_range("2018-01-01", "2018-06-30"))
Benutzeravatar
__blackjack__
User
Beiträge: 14251
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@einfachTobi: Ich denke so einfach nicht. Das ist ja nicht *eine* Schleife, sondern zwei verschachtelte.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
einfachTobi
User
Beiträge: 513
Registriert: Mittwoch 13. November 2019, 08:38

Oh, natürlich. War wohl schon etwas zu spät.
Das dürfte etwas schneller laufen:

Code: Alles auswählen

import pandas as pd
import numpy as np
N = 10464
date_range = pd.date_range('2018-01-01', '2018-06-30')
df = pd.DataFrame(np.repeat(range(1, N), len(date_range)), columns=["itemID"], dtype=float)
df["date"] = np.tile(date_range, N-1)
Antworten