背景:对于问卷填写中矩阵填空的题目的作答记录,后台数据导出是json字符串类型的,难以进行快速分析,需要进行将json格式字符串转换为table格式才能方便进行对数据的分析。
功能:将excel表格中某列的所有单元格的json格式字符串进行格式转换,输出到excel表格中。
环境:jupyter
# 导入pandas和json包
import pandas as pd
import json
data = pd.read_excel('datas.xlsx') # 读取excel表格数据
data = data['数据详细'] # 获取某列数据
rownum = len(data) # 记录数据条数
## 某一json字符串例子
# data = '''
# {"学生1":{"语文":"33","数学":"33","英语":"33"},"学生2":{"语文":"66","数学":"66","英语":"66"},"学生3":{"语文":"99","数学":"99","英语":"99"}}
# '''
# 将json数据转换为DataFrame对象并进行合并
df = pd.DataFrame()
for i in range(0,rownum):
dftemp = pd.DataFrame(json.loads(data.loc[i])) # json格式转换
df = pd.concat([df, dftemp]) # 合并数据
df = df.reset_index() # 新增以索引作为一列
df = df.rename(columns={'index': '学科'}) # 重命名以索引新增的列的列名
# 查看前十条数据
df.head(10)
# 输出到excel表格中
df.to_excel('ces.xlsx', index=False)