用python读取json

今天接到一个需求,如下表
在这里插入图片描述
需求是导出的excel只要这两列,对video_name去重然后取它们取平均值。

观察数据结构,boxes里面是一个json,所以会涉及到json的读取

分析任务:
0.先把excel后缀改成csv。(不改的话中文乱码)
1.先用python读取csv

file = pd.read_csv(path)

2.取video_name和boxes这两列数据

all_data = file[['video_name', 'boxes']]  # 读取多列用中括号

3.取boxes中的json数据。(用到json库)
4.取json中的数据替换到boxes中的json

for i in range(len(all_data['boxes'])):
    score_data = json.loads(all_data['boxes'][i])  # 多个json照读,最后几个json就几个长度这样子
    figure = 0
    for j in range(len(score_data)):
        figure += score_data[j]['score']
    figure /= len(score_data)
    all_data['boxes'][i] = figure

5.对video_name整列做去重取平均

result = all_data.groupby(['video_name']).mean()

全部代码如下:

pandas 数据处理

import pandas as pd
import json
path = r'D:\project\code\xxx.csv'
file = pd.read_csv(path)
all_data = file[['video_name', 'boxes']]  # 读取多列用中括号
for i in range(len(all_data['boxes'])):
    # 多个json照读,最后几个json就几个长度这样子
    score_data = json.loads(all_data['boxes'][i])  
    figure = 0
    for j in range(len(score_data)):
        figure += score_data[j]['score']
    figure /= len(score_data)
    all_data['boxes'][i] = figure
result = all_data.groupby(['video_name']).mean()
savepath = r'D:\project\code\save.csv'
result.to_csv(savepath, encoding='utf-8-sig')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值