json pandas 内存溢出_duyun

Pandas 处理 JSON 文件

介绍

本节实验为挑战,你将使用上一节实验中学习到的 Pandas 知识,分析用户学习数据 JSON 文件,并从文件中统计出中指定的数据项。 首先在终端中,通过以下命令下载用户学习数据 JSON 文件 user_study.json:

cd ~/Code

wget http://labfile.oss.aliyuncs.com/courses/764/user_study.json

user_study.json 文件部分内容展示如下:

{"minutes": 30, "created_at": "2016-05-01 00:00:10", "user_id": 199071, "lab": "\u7528\u6237\u53ca\u6587\u4ef6\u6743\u9650\u7ba1\u7406", "course": "Linux \u57fa\u7840\u5165\u95e8\uff08\u65b0\u7248\uff09"}

可以看到,文件中每一项为用户学习记录,代表某用户的某一次学习,其中每一项字段含义如下:

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 索引与过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值