2017-05-08 2 views
1

Ich verwende normalerweise Stata, aber jetzt möchte ich Python verwenden und versuche verzweifelt, einen Pandel-Datensatz zu erstellen. Ich habe versucht, pandas.panel, aber es nicht zur Arbeit zu bringen. Ich habe folgende Daten-Set:Python Panel Daten

date id1 id2 
    2000 100 50 
    2001 101 48 

Jetzt möchte ich es wie folgt aussehen:

date id variable 
    2000 1 100 
    2000 2 101 
    2001 1 50 
    2001 2 48 

Als nächstes möchte ich eine Zeit und id Variable identifizieren einige Panel-Funktion auszuführen. Ich habe auch versucht dataframe.stack(), aber dies sortiert nicht nach der ID. Wie mache ich das oder fehlt mir hier eine schöne Zeitreihenfunktion in Pandas?

Sorry für die Frage. Ich bin sicher, dass dies irgendwo beantwortet wurde, aber ich habe es mehrere Stunden versucht und kann es nicht herausfinden.

+0

ich herausgefunden habe, dass das Problem ist, dass ich keine ID für die Spalte habe, da id1 und i2 Spalten mit unterschiedlichen Strings benannt sind. Aber wie kann ich jeder Spalte eine ID zuweisen, ohne den Datensatz zu verzerren? –

+0

Ich glaube, einige Werte in Ihrer Variablenspalte sind falsch. – pylang

Antwort

1

gegebene Eingangsdaten:

data = [ 
    {"date": 2000, "id1": 100, "id2": 50}, 
    {"date": 2001, "id1": 101, "id2": 48} 
] 

oder

data = { 
    "date": [2000, 2001], 
    "id1": [100, 101], 
    "id2": [50, 48], 
} 

so dass

df = pd.DataFrame(data) 
df 

enter image description here

"melt" der Datenrahmen pandas:

melted = pd.melt(df, id_vars="date", var_name="id", value_name="variable") 

# Optional amendments 
melted["id"] = melted["id"].str.replace("id", "") 
melted.sort_values(by="date", inplace=True) 
melted.reset_index(inplace=True, drop=True) 

melted 

melted Ausgabe

enter image description here

Weitere Referenz: Wickham, H. Tidy Data, The Journal of Statistical Software, 10, 59, 2014

+0

'melt' hat einen' var_name' und 'value_name' Parameter, um die Umbenennung in einem Schritt durchzuführen. – DSM

+0

@DSM. Vielen Dank. Fest. – pylang

Verwandte Themen