2016-12-30 3 views
1

json 구조로 데이터 프레임을 변환하려면 어떻게해야합니까?데이터 프레임을 json으로 변환하는 방법

df = 

name size imports 
AAA  111  [222,333] 
BBB  111  [333,444] 

결과는해야한다 :이 명령 df.reset_index().to_json(orient='records')을 사용하는 경우

json = 
[ 
{"name":"AAA","size":111,"imports":["data.222","data.333"]}, 
{"name":"BBB","size":111,"imports":["data.33","data.444"]} 
] 

, 그럼 내가 (data.333 같은 값을 사용자 정의 즉 data를 추가하고 ".."에 값을 넣을 수 없습니다

+0

'type (df.imports.iloc [0]) '란 무엇입니까? – jezrael

+0

@ jezrael : 그것은'[''입니다. – Dinosaurius

+0

나는'print (type (df.imports.iloc [0]))'라고 생각하고 그것은 str이나 list라고 생각합니다. – jezrael

답변

2

당신은 할 수 있습니다. 과 함께 apply을 사용하여 list의 각 값에 data.을 입력하십시오.

df = pd.DataFrame({'name':['AAA','BBB'], 
        'sizeB':[111,111], 
        'imports':[[222,333],[333,444]]}) 

df.imports = df.imports.apply(lambda x: ['data.'+ str(y) for y in x]) 
print (df) 
       imports name sizeB 
0 [data.222, data.333] AAA 111 
1 [data.333, data.444] BBB 111 

print (df.to_json(orient='records')) 
[{"imports":["data.222","data.333"],"name":"AAA","sizeB":111}, 
{"imports":["data.333","data.444"],"name":"BBB","sizeB":111}] 
+0

입니다. "data.222, data.333"without "".. " – Dinosaurius

+0

약간 혼란 스럽습니다.'..'는 원하는 출력에 없습니다. 이해가 안된다고 생각합니다. 더 설명해 주시겠습니까? – jezrael

+0

나는 "수입품"을 얻고 싶다 : [ "data.222", "data.333"] 그러나 "imports"는 안된다 : [data.222, data.333]'. 미안해, 내가 잘 설명하지 않았다면. – Dinosaurius

관련 문제