[英]Group By and Count occurences of values in list of nested dicts
我有一个 JSON 文件,其结构如下所示:
{
"content": [
{
"name": "New York",
"id": "1234",
"Tags": {
"hierarchy": "CITY"
}
},
{
"name": "Los Angeles",
"id": "1234",
"Tags": {
"hierarchy": "CITY"
}
},
{
"name": "California",
"id": "1234",
"Tags": {
"hierarchy": "STATE"
}
}
]
}
作为结果,我想要 CSV 中的表格视图,如下所示:
标签.key | 标签值 | 发生 |
---|---|---|
等级制度 | 城市 | 2 |
等级制度 | STATE | 1 |
这意味着我想计算我的 json 文件中每个唯一“标签”的出现次数,并创建一个 output csv 来显示这一点。 我原来的 json 是一个相当大的文件。
Firstly construct a dictionary object by using ast.literal_eval
function, and then split this object to get a key, value tuples in order to create a dataframe by using zip
. 将groupby
应用于新形成的dataframe,最后通过使用df_agg.to_csv
创建一个.csv
文件如
import json
import ast
import pandas as pd
Js= """{
"content": [
{
"name": "New York",
"id": "1234",
"Tags": {
"hierarchy": "CITY"
}
},
....
....
{
"name": "California",
"id": "1234",
"Tags": {
"hierarchy": "STATE"
}
}
]
}"""
data = ast.literal_eval(Js)
key = []
value=[]
for i in list(range(0,len(data['content']))):
value.append(data['content'][i]['Tags']['hierarchy'])
for j in data['content'][i]['Tags']:
key.append(j)
df = pd.DataFrame(list(zip(key, value)), columns =['tag.key', 'tag.value'])
df_agg=df.groupby(['tag.key', 'tag.value']).size().reset_index(name='occurrance')
df_agg.to_csv(r'ThePath\\to\\your\\file\\result.csv',index = False)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.