2016-12-30 71 views
1

我怎麼能轉換成數據幀的JSON結構?如何轉換數據幀以JSON

df = 

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

結果應該是:

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

如果我用這個命令df.reset_index().to_json(orient='records'),那麼我不能自定義值一樣data.333(即添加data,把值到".."

+0

什麼是'類型(df.imports.iloc [0])'? – jezrael

+0

@jezrael:這是'['。 – Dinosaurius

+0

我覺得'print(type(df.imports.iloc [0]))'並且它是str或list我認爲。 – jezrael

回答

2

可以。使用applylist comprehension爲附加文本data.list每個值:

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]沒有'「」' – Dinosaurius

+0

我有點困惑 - '..'不期望的輸出。我想我不明白。你能解釋更多嗎? – jezrael

+0

我的意思是thta我需要' 「進口」: 「data.222」, 「data.333」],而不是 「進口」:data.222,data.333]'。對不起,如果我沒有解釋清楚。 – Dinosaurius