0

JSON に変換する必要があるデータフレームがあります。最初に辞書にした方が簡単だと思いますが、方法がわかりません。js.d3 で視覚化できるように、JSON に変換する必要があります。

現在のデータは次のようになります。

NAME, CATEGORY, TAG
Ex1, Education, Books
Ex2, Transportation, Bus
Ex3, Education, Schools
Ex4, Education, Books
Ex5, Markets, Stores

これが私がデータをどのように見せたいかです:

Data = {
     Education {
        Books {
           key: Ex1,
           key: Ex2 
}
Schools {
key: Ex3
}
}
Transportation {
Bus {
key: Ex2
}
}
Markets {
Stores {
key: Ex5
}
}

(ここでの JSON は完璧ではないと思いますが、一般的な考え方を伝えたかっただけです)。

4

2 に答える 2

1

このコードは、上記の Brent Washburne の非常に役立つ回答のおかげです。タグ列を削除する必要がありました。これは、今のところ面倒すぎるためです (行の多くには、コンマで区切られた複数のタグが含まれていました)。名前に関連付けたい (整数の) 列も追加しました。ここにあります:

import json, string
import pprint

def to_json(file):
data = {}
for line in open(file):
    fields = map(string.strip, line.split(','))
    categories = data.get(fields[1], [])
    to_append = {}       
    to_append[fields[0]] = fields[3]
    categories.append(to_append)
    data[fields[1]] = categories
return json.dumps(data)

print to_json('data.csv')
于 2013-06-11T18:17:35.703 に答える
0

'key' をキーとして複数回使用することはできないため、最も内側のグループはリストです。

import json, string

def to_json(file):
    data = {}
    for line in open(file):
        fields = map(string.strip, line.split(','))
        categories = data.get(fields[1], {})
        tags = categories.get(fields[2], [])
        tags.append(fields[0])
        categories[fields[2]] = tags
        data[fields[1]] = categories
    return json.dumps(data)

print to_json('data.csv')

結果:

{"Markets": {"Stores": ["Ex5"]}, "Education": {"Schools": ["Ex3"], "Books": ["Ex1", "Ex4"]}, "Transportation": {"Bus": ["Ex2"]}}
于 2013-06-10T23:59:42.803 に答える