python对dataframe中series的json格式解析

2023-11-03

方法1:如果df里只有一列json格式,可以保存为txt,然后再删掉列名,在进行处理。

import pandas as pd

result = []
with open(r"C:\Users\Administrator\Desktop\json处理.txt") as f:
    for line in f:
        print(line) # txt样子
        line = line.replace('""','"')
        line = line.replace('"{','{')
        line = line.replace('}"','}')
#         print(line) # 处理后的line
        dict_o = eval(line.strip()) #eval:将字符串字典转换为字典,strip:将某行字的两端空格去掉
        result.append(dict_o)
df = pd.DataFrame(result)
df

txt 内容


{""imei"":""5gy5"",""deviceid"":""c5ty7890h"",""accid"":""null""}

{"imei":"5gy5","deviceid":"c5ty7890h","accid":"null"}

{""imei"":""5rrr5"",""createtime"":""c5ty7890h"",""accid"":""null""}

{"imei":"5rrr5","createtime":"c5ty7890h","accid":"null"}

{""appid"":""5eeey5"",""deviceid"":""c5ty7890h"",""createtime"":""c5ty7890h"",""accid"":""null""}

{"appid":"5eeey5","deviceid":"c5ty7890h","createtime":"c5ty7890h","accid":"null"}

{""imei"":""null"",""deviceid"":""c544ty7890h"",""accid"":""null""}

{"imei":"null","deviceid":"c544ty7890h","accid":"null"}

结果输出:

imei deviceid accid createtime appid
0 5gy5 c5ty7890h null NaN NaN
1 5gy5 c5ty7890h null NaN NaN
2 5rrr5 NaN null c5ty7890h NaN
3 5rrr5 NaN null c5ty7890h NaN
4 NaN c5ty7890h null c5ty7890h 5eeey5
5 NaN c5ty7890h null c5ty7890h 5eeey5
6 null c544ty7890h null NaN NaN
7 null c544ty7890h null NaN NaN

方法2

import json
import pandas as pd
df = pd.read_excel(r"C:\Users\Administrator\Desktop\json处理.xlsx")
print(df)
data = df.to_dict(orient='records')
for _ in data:
    _.update(json.loads(_['json']))
    del _['json']

df1 = pd.DataFrame(data)
df1

原表

    城市                                               json
0   重庆  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
1   北京  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
2   上海  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
3   广州  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
4   深圳  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
5   地球  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
6   火星  {"imei":"null","deviceid":"c544ty7890h","accid...
7  太阳星  {"imei":"null","deviceid":"c544ty7890h","accid...

结果输出:

城市 imei deviceid accid createtime appid
0 重庆 5gy5 c5ty7890h null NaN NaN
1 北京 5gy5 c5ty7890h null NaN NaN
2 上海 5rrr5 NaN null c5ty7890h NaN
3 广州 5rrr5 NaN null c5ty7890h NaN
4 深圳 NaN c5ty7890h null c5ty7890h 5eeey5
5 地球 NaN c5ty7890h null c5ty7890h 5eeey5
6 火星 null c544ty7890h null NaN NaN
7 太阳星 null c544ty7890h null NaN NaN

方法3,取json的固定字段

import json
import pandas as pd
df = pd.read_excel(r"C:\Users\Administrator\Desktop\json处理.xlsx")
print(df)
tmp=[]
for line in df.json.values:
#     d=eval(line)[0] 
    d=eval(line)
    tmp.append(d.get('imei') or d.get('deviceid'))
    # tmp.append(d.get('xx')['yy']) #如果是嵌套字典,就用此方法
df['结果列']=tmp
df

原表

    城市                                               json
0   重庆  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
1   北京  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
2   上海  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
3   广州  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
4   深圳  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
5   地球  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
6   火星  {"imei":"null","deviceid":"c544ty7890h","accid...
7  太阳星  {"imei":"null","deviceid":"c544ty7890h","accid...

结果输出:

城市 json 结果列
0 重庆 {"imei":"5gy5","deviceid":"c5ty7890h","accid":... 5gy5
1 北京 {"imei":"5gy5","deviceid":"c5ty7890h","accid":... 5gy5
2 上海 {"imei":"5rrr5","createtime":"c5ty7890h","acci... 5rrr5
3 广州 {"imei":"5rrr5","createtime":"c5ty7890h","acci... 5rrr5
4 深圳 {"appid":"5eeey5","deviceid":"c5ty7890h","crea... c5ty7890h
5 地球 {"appid":"5eeey5","deviceid":"c5ty7890h","crea... c5ty7890h
6 火星 {"imei":"null","deviceid":"c544ty7890h","accid... null
7 太阳星 {"imei":"null","deviceid":"c544ty7890h","accid... null
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python对dataframe中series的json格式解析 的相关文章

  • 雅虎财务请求功能出现 404 客户端错误

    yahoo Financials的请求功能出现404 Client Error 直接点击以下网址没有问题 https finance yahoo com quote AAPL financials p AAPL https finance
  • 将 Python Pandas DataFrame 写入 Word 文档

    我正在努力创建一个使用 Pandas DataFrames 的 Python 生成的报告 目前我正在使用DataFrame to string 方法 但是 这会作为字符串写入文件 有没有办法让我实现这一目标 同时将其保留为表格 以便我可以使
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 无法在 virtualenv 中安装 libxml2

    我有一个问题libxml2蟒蛇模块 我正在尝试将其安装在python3 虚拟环境使用以下命令 pip install libxml2 python3 但它显示以下错误 Collecting libxml2 python3 Using cac
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • 查找与另一列 Pandas 中的唯一值关联的列中的值的交集

    如果我有一个像这样的数据框 非常小的例子 col1 col2 0 a 1 1 a 2 2 b 1 3 b 2 4 b 4 5 c 1 6 c 2 7 c 3 我想要所有的交集col2当价值观与其独特性相关时col1值 因此在这种情况下 交集
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • Python-验证我的文档 xls 中是否存在工作表

    我正在尝试在空闲时间设计一个小程序 加载 xls 文件 然后在要扫描的文档中选择一张纸 步骤1 用户导入 xls文件 导入程序后检查文件是否存在 我能做到的 第 2 步 我要求用户提供要分析的文档表 xls 的名称 这就是它停止的地方 该程
  • python Recipe:列出最接近等于值的项[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 考虑像这样的列表 0 3 7 10 12 15 19 21 我想获得最接近任何值的最近的最小数字 所以如果我通过4 我会得到3 如果我
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何按 pandas 中的值对系列进行分组?

    我现在有一只熊猫Series与数据类型Timestamp 我想按日期对其进行分组 并且每组中有许多行具有不同的时间 看似显而易见的方法类似于 grouped s groupby lambda x x date 然而 熊猫的groupby按索
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • 从 wxPython 事件处理程序中调用函数

    我正在努力寻找一种在 wxPython 事件处理函数中使用函数的方法 假设我有一个按钮 单击该按钮时 它会使用事件处理程序运行一个名为 OnRun 的函数 但是 用户忘记单击 OnRun 按钮之前的 RadionButton 我想弹出一个
  • 无需访问 Internet 即可部署 Django 的简单方法?

    我拥有的是使用 Django 开发的 Intranet 站点的开发版本以及放置在 virtualenv 中的一些外部库 它运行良好 我可以在任何具有互联网连接的计算机上使用相同的参数 使用 pip 轻松设置 virtualenv 但是 不幸
  • Python 相当于 Scala 案例类

    Python 中是否有与 Scala 的 Case Class 等效的东西 就像自动生成分配给字段而无需编写样板的构造函数一样 当前执行此操作的现代方法 从 Python 3 7 开始 是使用数据类 https www python org
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 如何使用 Python/Django 在 Facebook 中获取(和使用)扩展权限

    我正在尝试编写一个简单的应用程序 让用户授予我的代码写入其页面的 Facebook 流的权限 据我了解 它应该很简单 让用户单击一个按钮 启动一个弹出窗口 其中包含我的 Facebook 应用程序中的页面 在该页面中 他们单击授予的内容流发
  • 基于值的 matplotlib 条形图颜色

    有没有一种方法可以根据条形图的值对条形图的条形进行着色 例如 values below 0 5 red values between 0 5 to 0 green values between 0 to 08 blue etc 我找到了一些

随机推荐

  • 五分钟让你彻底了解TDD、ATDD、BDD&RBE

    在目前比较流行的敏捷开发模式 如极限编程 Scrum方法等 中 推崇 测试驱动开发 Test Driven Development TDD 测试在先 编码在后的开发实践 TDD有别于以往的 先编码 后测试 的开发过程 而是在编程之前 先写测
  • PostgreSQL用户登录失败自动锁定的解决办法

    墨墨导读 PostgreSQL使用session exec插件实现用户密码验证失败几次后自动锁定 本文介绍一种处理方案 一 插件session exec安装配置篇 下载插件并编译安装 https github com okbob sessi
  • RPA机器人的两种类型与未来发展

    眼下 RPA 机器人流程自动化 日渐成为业务流程优化重要解决方案和企业关注的重点 RPA不仅可以改善企业的工作方式 带来效率的提升和超高的投资回报率 ROI 其潜在的其他好处也是其他工具所无法比拟的 如改善客户体验 提高员工满意度 提高人才
  • 机器学习(一)svm运用实例

    机器学习 一 svm运用实例 这里我使用sklearn svm SVC函数 首先介绍一下函数参数 sklearn svm SVC C 1 0 kernel rbf degree 3 gamma auto coef0 0 0 shrinkin
  • TCPIP四层协议

    TCP IP四层协议 在说TCP IP四层协议之前 就不得不说OSI七层模型 OSI七层模型 自底向上依次是物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP体系结构的优点 1 简化了计算机网络的结构 从原来的七层模型
  • UITabBarItem

    UITabBarController UITabBar UIBarItem UITabBarItem UITabBarItem就是UITabBar上显示的小按钮 我们也可以定制系统UITabBarItem按钮 只需通过UITabBarIte
  • C/C++的64位整型 zz

    为了和DSP兼容 TSint64和TUint64设置成TSint40和TUint40一样的数 结果VC中还是认为是32位的 显然不合适 typedef signed long int TSint64 typedef unsigned lon
  • 初始化 Repo错误 错误信息:fatal: error [Errno 111] Connection refused

    错误信息 fatal error Errno 111 Connection refused 解决方法 修改home 目录下的 bashrc文件 gedit bashrc 在文件的末尾添加如下命令 export PATH bin PATH e
  • QT5.6静态编译添加ODBC数据库

    qt5 6已经编译好 现在添加ODBC数据库的支持 1 进入qt everywhere opensource src 5 6 3 qtbase src plugins sqldrivers odbc目录 运行qmake exe 然后再运行n
  • C语言学生管理系统课程设计

    include
  • cookie和session之间的关系

    当登录接口依赖token的 可以先登录后 token存到一个yaml或者json或者ini的配置文件里面 后面所有的请求去拿这个数据就可以全局使用 如果是cookies的参数 可以用session自动关联 详情如下 一 cookie与ses
  • 超全!深度学习在计算机视觉领域的应用一览

    计算机视觉领域正在从统计方法转向深度学习神经网络方法 计算机视觉中仍有许多具有挑战性的问题需要解决 然而 深度学习方法正在针对某些特定问题取得最新成果 在最基本的问题上 最有趣的不仅仅是深度学习模型的表现 事实上 单个模型可以从图像中学习意
  • MySQL查询数据库中所有表名及注释等信息

    1 查询所有表名 select table name from information schema tables where table schema 当前数据库 2 查看所有字段和字段注释 SELECT COLUMN NAME 字段 c
  • torch.Size理解

    torch Size括号中有几个数字就是几维 第一层 最外层 中括号里面包含了两个中括号 以逗号进行分割 这就是 2 3 4 中的2 第二层中括号里面包含了三个中括号 以逗号进行分割 这就是 2 3 4 中的3 第三层中括号里面包含了四个数
  • Python中MD5加密

    MD5是什么 下面的概念是百度百科的 Message Digest Algorithm MD5 中文名为消息摘要算法第五版 为计算机安全领域广泛使用的一种散列函数 用以提供消息的完整性保护 该算法的文件号为RFC 1321 R Rivest
  • ev3编程 python_乐高 EV3 高级编程 - 第四课:Python 模块

    译者按 使用 ev3dev Linux 系统并用 Python 编程的人数比例很低 好像这一课这样写 Python 编程的就更少了 你会发现程序的重用率会大大的提高 EV3 Lesson 4 Python Modules EV3 第 4 课
  • win10 电脑 .Net framework3.5 组件无法安装0x800f801f

    最近在win10上安装了MotorControl Workbench 5 4 0软件需要用到 Net framework3 5 但是安装Net framework3 5老是出错 无论是下载离线安装包安装 还是通过 控制面板 中 程序 的 启
  • 【SSM框架系列】Spring IoC(控制反转) & DI(依赖注入)

    Spring是什么 Spring是分层的 Java SE EE应用 full stack 轻量级开源框架 以 IoC Inverse Of Control 反转控制 和 AOP Aspect Oriented Programming 面向切
  • 指数增强(股票)——Python量化

    指数增强策略 目录 指数增强策略 1 策略原理 2 策略步骤 3 策略代码 4 回测结果和稳健性分析 1 策略原理 说到指数增强 就不得不说指数 在进行股票投资时 有一种分类方式是将投资分为主动型投资和被动型投资 被动型投资是指完全复制指数
  • python对dataframe中series的json格式解析

    方法1 如果df里只有一列json格式 可以保存为txt 然后再删掉列名 在进行处理 import pandas as pd result with open r C Users Administrator Desktop json处理 t