2017-05-04 4 views
1

meine Datenrahmen l ist wie folgt:etwas falsch mit dataframe.to_json()

      0 1 
Sepal Length Label  
(4.296, 5.2] setosa  39 0.866667 
       versicolor  5 0.111111 
       virginica  1 0.022222 
(5.2, 6.1] setosa  11 0.220000 
       versicolor 29 0.580000 
       virginica  10 0.200000 
(6.1, 7]  versicolor 16 0.372093 
       virginica  27 0.627907 
(7, 7.9]  virginica  12 1.000000 

und dann ll = l.to_json() excute, das Ergebnis ist:

'{"0":{"["(4.296, 5.2]","setosa"]":39,"["(4.296, 5.2]","versicolor"]":5,"["(4.296, 5.2]","virginica"]":1,"["(5.2, 6.1]","setosa"]":11,"["(5.2, 6.1]","versicolor"]":29,"["(5.2, 6.1]","virginica"]":10,"["(6.1, 7]","versicolor"]":16,"["(6.1, 7]","virginica"]":27,"["(7, 7.9]","virginica"]":12},"1":{"["(4.296, 5.2]","setosa"]":0.8666666667,"["(4.296, 5.2]","versicolor"]":0.1111111111,"["(4.296, 5.2]","virginica"]":0.0222222222,"["(5.2, 6.1]","setosa"]":0.22,"["(5.2, 6.1]","versicolor"]":0.58,"["(5.2, 6.1]","virginica"]":0.2,"["(6.1, 7]","versicolor"]":0.3720930233,"["(6.1, 7]","virginica"]":0.6279069767,"["(7, 7.9]","virginica"]":1.0}}' 

dann versuche ich, um die ll zu lesen, tun pd.read_json (ll) und fehlgeschlagen. Folgendes ist die Botschaft:

ValueError        Traceback (most recent call last) 
<ipython-input-574-4cb1a3ab2e3c> in <module>() 
----> 1 pd.read_json(l1g) 

/home/lv/anaconda3/lib/python3.6/site-packages/pandas/io/json.py in read_json(path_or_buf, orient, typ, dtype, convert_axes, convert_dates, keep_default_dates, numpy, precise_float, date_unit, encoding, lines) 
    279   obj = FrameParser(json, orient, dtype, convert_axes, convert_dates, 
    280       keep_default_dates, numpy, precise_float, 
--> 281       date_unit).parse() 
    282 
    283  if typ == 'series' or obj is None: 

/home/lv/anaconda3/lib/python3.6/site-packages/pandas/io/json.py in parse(self) 
    347 
    348   else: 
--> 349    self._parse_no_numpy() 
    350 
    351   if self.obj is None: 

/home/lv/anaconda3/lib/python3.6/site-packages/pandas/io/json.py in _parse_no_numpy(self) 
    564   if orient == "columns": 
    565    self.obj = DataFrame(
--> 566     loads(json, precise_float=self.precise_float), dtype=None) 
    567   elif orient == "split": 
    568    decoded = dict((str(k), v) 

ValueError: No ':' found when decoding object value 

Ich möchte die Daten der Struktur von Multiindex speichern, wie dies zu tun

kann mir jemand helfen dank>. <

Antwort

0

Pandas json Export und Rundreise noch Schwierigkeiten haben, mit Multiindex (nach this github issue)

Eine Möglichkeit, dies zu lösen, um eine reset_index vor dem Export und eine set_index danach zu tun wäre, wie in der Ausgabe Github erwähnt und this previous answer

Haben Sie versucht, eine der anderen orient ‚s (pandas documentation)

+0

in Ordnung, ich kown anderen ausrichtet, aber die Ergebnisse sind nicht ich will. – labixiaoK

+0

danach scheint ein reset_index was ich will. Übrigens, ich transportiere hauptsächlich den JSON zu d3.js, hoffentlich funktioniert es mit dem reset_index Formular. was auch immer, vielen Dank. – labixiaoK