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: 512
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: 14052
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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
einfachTobi
User
Beiträge: 512
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