574 Stimmen

Konvertiere Python dict in ein DataFrame

Ich habe ein Python-Dictionary:

{u'2012-07-01': 391,
 u'2012-07-02': 392,
 u'2012-07-03': 392,
 u'2012-07-04': 392,
 u'2012-07-05': 392,
 u'2012-07-06': 392}

Ich möchte dies in ein Pandas-Dataframe umwandeln, indem ich die Daten und ihre entsprechenden Werte als zwei separate Spalten habe; das erwartete Ergebnis sieht wie folgt aus:

     Date         DateValue
0    2012-07-01    391
1    2012-07-02    392
2    2012-07-03    392
.    2012-07-04    392
.    ...           ...

Gibt es einen direkten Weg, dies zu tun?

9voto

msbeigi Punkte 79

Der Punkt besteht darin, wie man jedes Element in ein DataFrame einfügt.

Zeilenweise:

pd.DataFrame(dic.items(), columns=['Datum', 'Wert'])

oder spaltenweise:

pd.DataFrame([dic])

6voto

Artem Zaika Punkte 1082

In meinem Fall wollte ich, dass Schlüssel und Werte eines Diktats Spalten und Werte des DataFrame sind. Das Einzige, was für mich funktioniert hat, war:

data = {'adjust_power': 'y', 'af_policy_r_submix_prio_adjust': '[null]', 'af_rf_info': '[null]', 'bat_ac': '3500', 'bat_capacity': '75'} 

columns = list(data.keys())
values = list(data.values())
arr_len = len(values)

pd.DataFrame(np.array(values, dtype=object).reshape(1, arr_len), columns=columns)

6voto

Blairg23 Punkte 9968

Sie können auch einfach die Schlüssel und Werte des Wörterbuchs an das neue DataFrame übergeben, wie folgt:

import pandas as pd

myDict = {]
df = pd.DataFrame()
df['Date'] = myDict.keys()
df['DateValue'] = myDict.values()

5voto

firstly Punkte 61

Nimmt ein Dictionary als Argument entgegen und gibt ein DataFrame zurück, wobei die Schlüssel des Dictionary als Index und die Werte als Spalte dienen.

def dict_to_df(d):
    df=pd.DataFrame(d.items())
    df.set_index(0, inplace=True)
    return df

1voto

Ich denke, dass du einige Änderungen im Datenformat vornehmen kannst, wenn du ein Wörterbuch erstellst, dann kannst du es leicht in ein DataFrame umwandeln:

Eingabe:

a={'Dates':['2012-06-08','2012-06-10'],'Date_value':[388,389]}

Ausgabe:

{'Date_value': [388, 389], 'Dates': ['2012-06-08', '2012-06-10']}

Eingabe:

aframe=DataFrame(a)

Ausgabe: wird dein DataFrame sein

Du musst nur irgendwo wie in Sublime oder vielleicht Excel etwas Textbearbeitung verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X