相當類似的問題被問到there,並得到了在R的user1609452出色的回答。但仍然是一個具體的問題。我想擴大這個問題。讓我們採取幾乎相同的表(MyData):熊貓df嵌套json
ID Location L_size L_color Station S_size S_color Category C_size C_color
1 Alpha 6 #000000 Zeta 3 #333333 Big 0.63 #306100
2 Alpha 6 #000000 Zeta 3 #333333 Medium 0.43 #458b00
3 Alpha 6 #000000 Zeta 3 #333333 small 0.47 #6aa232
4 Alpha 6 #000000 Yota 3 #4c4c4c Big 0.85 #306100
5 Alpha 6 #000000 Yota 3 #4c4c4c Medium 0.19 #458b00
6 Alpha 6 #000000 Yota 3 #4c4c4c small 0.89 #6aa232
7 Beta 6 #191919 Theta 4 #666666 Big 0.09 #306100
8 Beta 6 #191919 Theta 4 #666666 Medium 0.33 #458b00
9 Beta 6 #191919 Theta 4 #666666 small 0.79 #6aa232
10 Beta 6 #191919 Theta 4 #666666 Big 0.89 #306100
11 Beta 6 #191919 Meta 3 #7f7f7f Medium 0.71 #458b00
12 Beta 6 #191919 Meta 3 #7f7f7f small 0.59 #6aa232
每個類別都有一個或多個屬性(這裏只有一個:大小)。我想要什麼,這是每個父母在JSON文件/兒童報出大小:
{
"name":"MyData",
"size":12,
"color":"#ffffff"
"children":[
{
"name":"Alpha",
"size":6,
"color":"#000000"
"children":[
{
"name":"Zeta",
"size":3,
"color":"#333333"
"children":[
{
"name":"Big",
"size":0.63,
"color":"#306100"
},
...
等 我不能讓它在R,也沒有在大熊貓......你知道嗎?
編輯: 我的目標是將不同的信息鏈接到兒童,不僅尺寸。我爲每個主列添加了一個顏色列。爲了清晰起見,我的初始數據框很大,並且有很多信息,但我無法將其粘貼到此處。
第二次編輯:給克里斯回答 它幾乎奏效!偉大的更新。仍然json文件沒有正確上傳到我的JavaScript文件。該文件似乎是顛倒(MYDATA是在結束),並從父母的信息是之前和之後的兒童的信息:
{
"children":[
{
"color":"#000000",
"children":[
{
"color":"#4c4c4c",
"children":{
"color":"#306100",
"name":"Big",
"size":0.85
},
"name":"Yota",
"size":3
},
{
"color":"#333333",
"children":{
"color":"#306100",
"name":"Big",
"size":0.63
},
"name":"Zeta",
"size":3
}
],
"name":"Alpha",
"size":6
},
{
"color":"#191919",
"children":[
{
"color":"#7f7f7f",
"children":{
"color":"#458b00",
"name":"Medium",
"size":0.71
},
"name":"Meta",
"size":3
},
{
"color":"#666666",
"children":{
"color":"#306100",
"name":"Big",
"size":0.09
},
"name":"Theta",
"size":4
}
],
"name":"Beta",
"size":6
}
],
"name":"MyData",
"size":12
最後編輯時間:正常工作。克里斯在他更新的時候刪除了他編寫的腳本的最後部分,所以在這裏。謝謝克里斯!
data = {'name': 'MyData',
'size': len(MyData),
'children': make_children(MyData, levels)}
print json.dumps(data)
謝謝克里斯。您找到了避免上述鏈接中的R腳本的好方法。我的例子不夠好,因爲你的腳本巧妙地從df的長度中取出了大小。我想要的不僅僅是尺寸......我會編輯這個問題...... – Sara
克里斯,我認爲我們到了那裏,但雖然json是有效的,但它沒有正確上傳我的javascript。看到我的第二個更新。謝謝! – Sara
@Sara - JSON是無序的,所以這不是問題。但是,一切都需要成爲字符串。在轉換爲字典/ JSON之前,嘗試執行'df = df.astype(str)'。 – chrisb