json pandas 記憶體溢位 duyun

2021-10-13 00:21:05 字數 1394 閱讀 2886

pandas 處理 json 檔案

介紹cd ~/code

wget

user_study.json 檔案部分內容展示如下:

可以看到,檔案中每一項為使用者學習記錄,代表某使用者的某一次學習,其中每一項字段含義如下:

user_id 使用者 id

lab 實驗名稱

course 課程名稱

minutes 學習分鐘數

created_at 學習時間

在本挑戰中,你需要在 ~/code/analysis.py python 檔案中編寫乙個解析並統計學習資料的函式 analysis,analysis 函式接受兩個引數。第乙個引數為學習資料 json 檔名稱,其檔案內容格式和 user_study.json 檔案格式一致,第二個引數為使用者 id。你需要使用 pandas 讀取 json 檔案,並從中統計出第二個引數指定的使用者 id 的學習次數和總學習分鐘數,也就是說函式將返回兩個值,第乙個為指定使用者的學習次數(即資料檔案中該使用者的資料有多少條),第二個為指定使用者的總學習分鐘數。 示例**:

# 需要使用 json 包解析 json 檔案

import json

import pandas as pd

def analysis(file, user_id):

times = 0

minutes = 0

補充**:

1. 使用 pandas 讀取資料

2. 使用 pandas 選擇資料

return times, minutes

目標函式名必須是 analysis ;

**必須寫入 ~/code/analysis.py 檔案中;

analysis 函式接受兩個引數,第乙個引數是 json 檔名稱,第二個引數是使用者 id;

analysis 函式返回兩個值,第乙個值是指定使用者的學習次數,第二個值是指定使用者的學習分鐘數;

如果傳遞給 analysis 函式的檔案不存在或者使用者 id 不存在時返回 0 即可;

提示語pandas 中的 pandas.read_json 可以讀取 json 檔案;

pandas 的 dataframe 資料集可以使用形如 df[df['user_id'] == 5348] 的布林索引過濾出 user_id 列等於 5348 的所有行;

user_study.json 檔案包含的是 json 文字,包含了多項使用者學習資料;

預設實驗環境使用的是 python 3.5,我們的實驗均在 anaconda 包含的 python 3.6.1 下執行。故在除錯指令碼時使用 /home/shiyanlou/anaconda3/bin/python analysis.py 來執行,避免模組匯入出錯的問題。

知識點pandas 基本用法

json 資料檔案處理

dataframe 索引與過濾

棧溢位,記憶體溢位

對於一台伺服器而言,每乙個使用者請求,都會產生乙個執行緒來處理這個請求,每乙個執行緒對應著乙個棧,棧會分配記憶體,此時如果請求過多,這時候記憶體不夠了,就會發生棧記憶體溢位。棧溢位是指不斷的呼叫方法,不斷的壓棧,最終超出了棧允許的棧深度,就會發生棧溢位,比如遞迴操作沒有終止,死迴圈。可以把記憶體比作...

linux 記憶體溢位排查 mysql記憶體溢位處理

業務場景 mysql 元件版本 mysql 5.7.25軟體架構 兩主兩從 01問題描述 mysql是乙個關係型資料庫管理系統,屬於oracle旗下產品。mysql是最流行的關係型資料庫管理系統之一,在web應用方面,mysql是最好的rdbms relational database manage...

mysql防止記憶體溢位 mysql記憶體溢位處理

主庫實列發生oom,例項程序由於占用記憶體達到linux系統的最大閾值,導致linux系統kill了mysql例項程序,可以通過如下方式檢視mysql使用了多少記憶體 檢視每個執行緒占用多少記憶體,然後乘以正在執行的執行緒 也就是排查sleep的 select read buffer size re...