2017-03-21 3 views
1

나는 다음과 같은 JSON 한 :지저귐 json을 판다 데이터 프레임으로 읽는 방법?

df = pd.DataFrame.apply(lambda x: map(x.from_records, json_path)) 

그리고 :

[ 
    [ 
     { 
      "A": "2017-02-02T11:57:41+0000", 
      "B": "agent", 
      "C": "hi how are you son." 
     }, 
     { 
      "A": "2017-02-01T22:19:58+0000", 
      "B": "user2", 
      "C": "M contestan" 
     }, 
     { 
      "A": "2017-02-01T22:19:42+0000", 
      "B": "user2", 
      "C": "preetty thanks you?" 
     }, 
     { 
      "A": "2017-02-01T22:19:28+0000", 
      "B": "user2", 
      "C": "the cat sat over the fox" 
     } 
    ] 
] 

나는이 같은 팬더 dataframe로를 작성할 수있는 방법은 내가 그것을 만들려고

A B C 
2017-02-02T11:57:41+0000 agent Hola Alex, si no has realizado la modificación de los datos afiliados, por favor confírmanos tu DNI, celular y operador para revisarlo. Gracias. 
.... 
2017-02-01T16:22:30+0000 user1 Hola me han depositado un dinero a mi nombre, no tengo cuenta en este banco, puedo saber por aquí si ya puedo cobrar? DNI 42782263 gracias 

? :

df = pd.DataFrame('../path/file.json') 

그리고 read_json()으로 작동하지만 작동하지 않습니다. 따라서 json에서 어떻게 데이터 프레임을 구축 할 수 있습니까?

답변

1
In [17]: import json 

다음 JSON 문자열을 가지고 가정 :

In [19]: data = json.loads(s) 

을하고 DataFrame 구축 :

In [18]: s 
Out[18]: '[[{"A": "2017-02-02T11:57:41+0000", "B": "agent", "C": "Hola Alex, si no has realizado la modificacin de los datos afiliados, por 
favor confrmanos tu DNI, celular y operador para revisarlo. Gracias."}, {"A": "2017-02-01T22:19:58+0000", "B": "user2", "C": "Me podran ayud 
ar?, estoy llamando al CC y no contestan"}, {"A": "2017-02-01T22:19:42+0000", "B": "user2", "C": "No me llega el sms con la clave token"}, { 
"A": "2017-02-01T22:19:28+0000", "B": "user2", "C": "Tengo problemas para hacer pagos de servicios desde la app"}, {"A": "2017-02-01T22:19:1 
8+0000", "B": "user2", "C": "Buenas tardes"}], [{"A": "2017-02-01T22:19:12+0000", "B": "agent", "C": "Hola Alexander, as es, el dinero ya se 
encuentra disponible puedes acercarte a cualquiera de nuestras tiendas el nmero es 1703070024597. Buenas noches"}, {"A": "2017-02-01T16:22: 
30+0000", "B": "user1", "C": "Hola me han depositado un dinero a mi nombre, no tengo cuenta en este banco, puedo saber por aqu si ya puedo c 
obrar? DNI 42782263 gracias"}]]' 

당신은 그것을 구문 분석 할 수있는 진정한

In [31]: pd.DataFrame.from_records(np.concatenate(data)) 
Out[31]: 
          A  B          C 
0 2017-02-02T11:57:41+0000 agent Hola Alex, si no has realizado la mo... 
1 2017-02-01T22:19:58+0000 user2 Me podran ayudar?, estoy llamando al... 
2 2017-02-01T22:19:42+0000 user2 No me llega el sms con la clave token 
3 2017-02-01T22:19:28+0000 user2 Tengo problemas para hacer pagos de ... 
4 2017-02-01T22:19:18+0000 user2       Buenas tardes 
5 2017-02-01T22:19:12+0000 agent Hola Alexander, as es, el dinero ya ... 
6 2017-02-01T16:22:30+0000 user1 Hola me han depositado un dinero a m... 
+1

오을 ... ..'[0]'목록에 들어가려면 .... – tumbleweed

+0

고마워, Max ... 그러나 목록은 실제로 중첩 목록입니다 (예 : 나는 df에 여러리스트를 가지고있다.) 나는 df = pd.DataFrame (* d [0])과'pd.DataFrame (d [ 0] [:])'... 이전 시도에서 람다를 매핑하거나 사용하려고 시도했는데 ... 어떻게이 문제를 해결할 수 있습니까? – tumbleweed

+1

@ tumbleweed, 답변을 업데이트했습니다 - 확인하십시오 – MaxU

관련 문제