簡體   English   中英

將Json數據轉換為Python DataFrame

[英]Convert Json data to Python DataFrame

這是我第一次訪問API /使用json數據,因此,如果有人可以將我引向了解如何使用它的良好資源,我將非常感激。

具體來說,我有以下形式的json數據:

{"result": { "code": "OK", "msg": "" },"report_name":"DAILY","columns":["ad","ad_impressions","cpm_cost_per_ad","cost"],"data":[{"row":["CP_CARS10_LR_774470","966","6.002019","5.797950"]}],"total":["966","6.002019","5.797950"],"row_count":1}

我了解這種結構,但是我不知道如何正確地將其放入DataFrame中。

查看json的結構,大概您的數據將有幾行,我認為自行構建數據框會更有意義。

此代碼使用columnsdata來構建數據框:

In [12]:

import json
import pandas as pd
​
with open('... path to your json file ...') as fp:
    for line in fp:
        obj = json.loads(line)
        columns = obj['columns']
        data = obj['data']
        l = []
        for d in data:
            l += [d['row']]
        df = pd.DataFrame(l, index=None, columns=columns)

df
Out[12]:
ad  ad_impressions  cpm_cost_per_ad cost
0   CP_CARS10_LR_774470 966 6.002019    5.797950

至於其余的數據,在您的json ,我想您可以例如使用總計來檢查數據框,

In [14]:

sums = df.sum(axis=0)
obj['total']
for i in range(0,3):
    if (obj['total'][i] != sums[i+1]):
        print "error in total"

In [15]:

if obj['row_count'] != len(df.index):
    print "error in row count"

至於json的其余數據,我很難知道是否還應該做其他事情。

希望能幫助到你。

查看熊貓文件。 特別,

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html

熊貓支持將json讀取到數據框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM