2017-10-15 14 views
1

異なる長さのリストで構成されるJSONをpandasデータフレームに変換する際にいくつか問題があります。JsonからPandasデータフレームへの異なる長さのネストされたリスト

import requests, json 
import numpy as np 

r = requests.get('https:a_web_page') 

data = r.json() 
type(data) 

これから私は「データ」がリストであるという出力を得ました。

WebページからJSONファイルを次のようになります。

それは、このWebページに証明することができるように正しいJSONファイルがある
[ [ 1411333200000 , 0.0 , [ 0.0 , 0.0 , 10.0 , 5.4014 , 0.42247 , 0.2517 , 
0.0 , 0.0 , 0.0 , 0.0 , 0.0616 , 0.0 , 0.0]] , 
[ 1411419600000 , 0.0 , [ 0.0 
, 0.0 , 10.0 , 4.8029 , 2.17222 , 2.216 , 0.0 , 0.0 , 0.0 , 0.0 , 0.800 , 
0.0 , 0.0]] , 
[ 1411506000000 , 1.13383 , [ 9.448 , 0.0 , 10.0 , 6.07 , 2.1722 , 2.97500 , 
0.0 , 0.0 , 0.0 , 0.0 , 3.8017 , 1.17 , 2.893]]] 

https://konklone.io/json/

は、私は何をしようとしていますが変換されますこのようなデータフレームに変数「データ」:

1411333200000 0 0 0 10 5.4014 0.42247 0.2517 0 0 0 0 
0.0616 0 0 
1411419600000 0 0 0 10 4.8029 2.17222 2.216 0 0 0 0 0.8 
0 0 
1411506000000 1.13383 9.448 0 10 6.07 2.1722 2.975 0 0 0 
0 3.8017 1.17 2.893 

私が意味する、15列と3行のデータフレーム。データフレームにリストを渡す通常の方法で

:DF = pd.DataFrame(データ)、Iは3列を取得し、3番目一つは13個の要素のリストであり、それdoesn't作業:

1411333200000 0 [0 0 10 5.4014 0.42247 0.2517 0 0 0 0 
0.0616 0 0] 
1411419600000 0 [0 0 10 4.8029 2.17222 2.216 0 0 0 0 0.8 
0 0] 
1411506000000 1.13383 [9.448 0 10 6.07 2.1722 2.975 0 0 0 
0 3.8017 1.17 2.893] 

私も次のコードで「データ」を平らにするためにしようと試みたが、それもdidn't作品:

私はまた、スタック解除とjson_normalizeしようと試みたが、私はそれを動作させるcoudn't。誰にでも手を差し伸べることができれば助かりますよ。

答えて

0
df=pd.DataFrame(data) 

df=pd.concat([df.iloc[:,0:2],df[2].apply(pd.Series)],axis=1) 
df.columns=list(range(df.shape[1])) 
df 
Out[63]: 
       0  1  2 3  4  5  6  7 8 \ 
0 1411333200000 0.00000 0.000 0.0 10.0 5.4014 0.42247 0.2517 0.0 
1 1411419600000 0.00000 0.000 0.0 10.0 4.8029 2.17222 2.2160 0.0 
2 1411506000000 1.13383 9.448 0.0 10.0 6.0700 2.17220 2.9750 0.0 
    9 10 11  12 13  14 
0 0.0 0.0 0.0 0.0616 0.00 0.000 
1 0.0 0.0 0.0 0.8000 0.00 0.000 
2 0.0 0.0 0.0 3.8017 1.17 2.893 
+0

正確に私が必要としてくれたこと、多くの感謝温さん! – Javi

関連する問題