簡體   English   中英

從 json 文件中提取數據的有效方法。 並將其轉化為 dataframe

[英]Efficient way of extracting data, from json file. And transforming it into dataframe

想象一下我有一個包含多個字典的列表

樣本字典

{'city': None, 'bot-origin': None, 'campaign-source': 'attendance bot', 'lastState': 'productAvailabilityCpfValidationTrue', 'main-installation-date': None, 'userid': '00377a70-fc79-424e-80c3-1f0324094378@tunnel.msging.net', 'full-name': None, 'alternative-installation-date': None, 'chosen-product': 'Internet', 'bank': None, 'postalcode': '82100690', 'due-date': None, 'cpf': '07670115971', 'origin-link': '', 'payment': None, 'state': None, 'api-orders-hash-id': None, 'email': None, 'api-orders-error': None, 'plan-name': None, 'userphone': '41 9893-6613', 'plan-offer': None, 'completed-address': None, 'type-of-person': 'CPF', 'onboarding-simplified': None, 'type-of-product': 'Residencial', 'main-installation-period-day': None, 'plan-value': None, 'alternative-installation-period-day': None, 'data-change': 'false'}

該列表包含大約 9000000 個事件,例如顯示的事件。

我想要做的基本上是將它們分解成一種 dataframe 格式,例如pd.DataFrame() (我不堅持),但不幸的是。 我嘗試了諸如pd.json_normalize()read_jsonfrom_records等命令,它們看起來很好地消耗了我所有的 memory。 我的方法是做某種塊大小,我將列表/系列分成塊,將它們加載到變量中,將它們轉換為 df 格式保存它們,然后清除 memory,然后將所有內容連接起來。 所以你知道我的電腦在嘗試一次加載所有內容時不會崩潰。

這是我的嘗試

def forma_extras(extras):
   # Extras = serialized json, in series object format
   for i in range(0,extras.size[0],100):
        #Having a little trouble here

我的解決方案是這樣的 至少當我運行它時我的計算機不會崩潰這是不是最有效的我不確定,也許保存它並取出 memory 會更好,將執行以下步驟

def forma_extras(extras):
    chunk = 100000
    l_extra = []
    for i in range(0,len(extras),chunk):
        chunks = i + chunk
        l_extra.append(pd.DataFrame.from_records(extras[i:chunks]))

暫無
暫無

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

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