2017-12-03 3 views
0

Ich versuche, einen Pandas Datenrahmen zu schaffen, wie ich schon seit Jahren jetztPython 2.7 - Erstellen Pandas Datenrahmen mit Wörterbuch

import pandas as pd 
pd.DataFrame({'a':1,'b':2}) 

tun Und es gibt einen Fehler genau dort -

ValueError: If using all scalar values, you must pass an index 

I auch versucht

pd.DataFrame.from_dict({'a':1,'b':2}) 

wieder denselben Fehler -

ValueError: If using all scalar values, you must pass an index 

Ich möchte nur einen Datenrahmen mit Spalten ‚a‘ erstellen und ‚b‘, wobei die Werte 1 und 2

a b 
1 2 

Ich bin mir ziemlich sicher, das ist, wie es immer gearbeitet hat, aber es irgendwie geht nicht mehr. Was vermisse ich? Ist das eine seltsame Eigenart von Python 2.7? Oder weigern sich Pandas, an einem Sonntagmorgen zu arbeiten? Kann mir bitte helfen.

Antwort

0

Verwendung DataFrame.from_dict:

d = {'a':1,'b':2} 
df = pd.DataFrame.from_dict(d, orient='index').T 
print (df) 
    a b 
0 1 2 

Oder:

df = pd.DataFrame([d.values()], columns=d.keys()) 
print (df) 
    a b 
0 1 2 
+0

mit Entschuldige, dass ich klar war nicht. Ich möchte einen Datenrahmen mit 2 Spalten 'a' und 'b' erstellen. Ich habe meine ursprüngliche Frage bearbeitet. –

+0

Danke! das hat funktioniert. Aber ich bin mir sehr sicher, dass pd.DataFrame ({'a': 1, 'b': 2}) in der Vergangenheit funktioniert hat. Was fehlt mir hier? –

+0

Es ist in der Dokumentation auch - https://pandas.pydata.org/pandas-docs/stable/10min.html. Wann hat es aufgehört zu arbeiten? –

0

Hier ist, was ich falsch mache -

df = pd.DataFrame({'A':[1],'B':[2]}) 

Die Werte in einer Liste sein sollte. Das war ein Mist.

0

von pd.Series

pd.Series(d).to_frame().T 
Out[74]: 
    a b 
0 1 2 
Verwandte Themen