使用 JSON 序列化/反序列化 Pandas DataFrame 时如何保留索引的时区

2023-12-19

我需要使用以下方法将 Pandas DataFrame 序列化为 JSONto_json方法。这是我如何做到这一点的一个例子:

import pandas
import numpy as np
dr = pandas.date_range('2016-01-01T12:30:00Z', '2016-02-01T12:30:00Z')
data = np.random.rand(len(dr), 2)
df = pandas.DataFrame(data, index=dr, columns=['a', 'b'])

# NOTE: The index for df has the following properties in pandas 0.19.2
#       dtype='datetime64[ns, UTC]', freq='D'

# Save to JSON
df.to_json('/tmp/test_data_01.json', date_unit='s', date_format='iso')

使用上面的代码,我看到我的 DataFrame 已保存到磁盘,并且索引如下所示: [2016-01-01T12:30:00Z, 2016-01-02T12:30:00Z, ...] 在文件 / tmp/test_data_01.json。

问题是当我执行以下操作时:

df2 = pandas.read_json('/tmp/test_data_01.json')

df2 的索引没有时区。

df2.index.tz
# Returns None

是否有办法保留序列化为 JSON 并反序列化回来的 DataFrame 的时区属性?


Pandas 在使用时会将所有内容转换为 UTCto_json.

请参阅这个示例,我将其更改为Europe/Paris这是 UTC+1:

In [1]:
dr = pd.date_range('2016-01-01T12:30:00Z', '2016-02-01T12:30:00Z')
dr = dr.tz_convert('Europe/Paris')
data = np.random.rand(len(dr), 2)
df = pd.DataFrame(data, index=dr, columns=['a', 'b'])

In [2]: df.index[0]
Out[2]: Timestamp('2016-01-01 13:30:00+0100', tz='Europe/Paris', freq='D')

In [3]: df.to_json('test_data_01.json', date_unit='s', date_format='iso')

如果我打开test_data_01.json,第一个是"2016-01-01T12:30:00Z".

因此,当您加载 json 时,请将其本地化为 UTC。但无法知道 tz 事先使用了什么:

In [4]:
df2 = pd.read_json('test_data_01.json')
df2.index = df2.index.tz_localize('UTC')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JSON 序列化/反序列化 Pandas DataFrame 时如何保留索引的时区 的相关文章

  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数

随机推荐

  • 如何在异步模式下使用 XMLHttpRequest 设置多个标头数据?

    我的 api 调用要求我在标头中传递 api 密钥 但我从 api 服务返回错误 error 2424452 message Invalid Api Key 我知道我的 api 密钥是有效的 因为我可以在 Python 中进行相同的 api
  • 如何替换 Gradle 构建产品文件中的令牌?

    我为 Gradle 设置了一个普通的构建脚本 我想做的一件事是指定我的构建版本 这是我设置的用于替换主 Java 源文件中的版本标记的代码 import org apache tools ant filters ReplaceTokens
  • 什么是位掩码?

    我对 C 编程相当陌生 并且遇到了位掩码 位掩码的一般概念和作用是什么 非常感谢例子 掩码定义要保留哪些位以及要清除哪些位 屏蔽是将屏蔽应用于值的行为 这是通过执行以下操作来完成的 按位与运算以提取值中的位子集 按位或运算以设置值中的位子集
  • 当 HTML5 画布准备好时调用函数

    我将多个 PNG 图像加载到画布上 因此生成画布需要一些时间 我想在画布加载时显示加载图标 如何检查画布是否正在加载或准备就绪 HTML
  • OpenGL ES 可以渲染非基本二维的纹理吗?

    在我深入研究将当前的渲染系统转换为 openGL 之前 这只是一个简单的问题 我听说纹理需要采用基本 2 尺寸才能存储以进行渲染 这是真的 我的应用程序内存非常紧张 但大多数位图都不是 2 的幂 存储非基2纹理会消耗更多内存吗 确实 具体取
  • 流程发布资源

    我正在尝试构建我的react native项目并使用react native fbsdk 我在用 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protecti
  • 如何升级密码存储方案(更改哈希算法)

    我被要求对 Intranet 站点实施一些更改 更新 正如他们所说 使其成为 面向未来 我们发现密码是使用 MD5 算法进行哈希处理的 该系统自 2001 年以来就已经存在 所以当时已经足够了 我们现在想要将哈希算法升级为更强的算法 BCr
  • (function(){})() 和 (function(){}()) 之间的区别,自调用匿名函数[重复]

    这个问题在这里已经有答案了 看看括号的位置 有什么不同吗 函数 function 和 func function 从技术上讲 第一个定义了一个匿名函数 然后调用它 第二个定义了一个匿名函数 该函数在定义时调用自身 实际上 它们是相同的
  • 执行命令时如何在atom中设置环境变量

    我正在尝试将我的环境变量设置为 env DEBUG babel 但我不知道在 Atom 编辑器中哪里可以使用这个设置 要使 shell 的环境变量可供 Atom 使用 请安装以下两个小 Atom 包 来自 shell 的环境 https a
  • PHP 检测 Fetch Api 与 XMLHttpRequest

    截至目前 我的网站正在使用 jQuery Ajax 从前端向后端发出请求 然后后端通过检查 SERVER HTTP X REQUESTED WITH XMLHttpRequest 来确定 ajax 请求 我正在尝试仅切换到本机 JS 并且想
  • 访问公共 AWS s3 存储桶

    我们一群朋友正在做一个 Map Reduce 项目 并且正在处理一个通用数据集 我的朋友已使用他的 AWS 帐户将数据上传到 s3 存储桶 并将 s3 存储桶策略设置为 Version 2008 10 17 Id Policy1417380
  • 特征仅适用于对象吗?

    又在尾巴上这个问题 https stackoverflow com q 68575795 891440 我正在尝试做一个will特质工作 使用这个 打高尔夫球的 代码 sub show value a var say Value of a
  • 通用构造函数和反射

    是否可以看出哪个构造函数是通用构造函数 internal class Foo
  • 执行策略“SqlServerRetryingExecutionStrategy”不支持用户启动的事务

    我有一个 ASP NET Core 5 MVC Web 应用程序 使用 Entity Framework Core 5 我们实现 Web 组件 例如网格或电子表格 我们与 Telerik 合作 当我在组件中进行一些更改 然后尝试保存更改时
  • Highcharts 气泡图数据标签重叠

    如图所示 与小提琴的代码不同 但显示了问题 使用 Highcharts 新的气泡图 数据标签似乎喜欢坐在彼此的顶部 有一个简单的解决方法吗 我很乐意在每个标签的基础上手动更改 z index 但这似乎不适用于气泡图 这是一些无法按预期工作的
  • Matlab 中的 KNN 回归

    Matlab中的k近邻回归函数是什么 只有knn分类功能可用吗 有人知道与此相关的任何有用的文献吗 Regards Farideh 我不相信 k NN 回归算法是直接在 matlab 中实现的 但是如果你进行一些谷歌搜索 你可以找到一些有效
  • 将多个命令绑定到屏幕中的单个键?

    如何将多个命令绑定到 gnu screen 中的一个键 我想合并两个映射 bind c copy bind b eval writebuf exec sh c xsel clipboard lt tmp screen exchange 到单
  • youtube - 无法在轮播/滑块中滑过 iframe

    我有一个带有轮播的响应式网站 用户可以将 YouTube 视频嵌入为其中一张幻灯片 在桌面上这工作正常 然而 在移动设备上 iframe 显然会吃掉所有滑动事件 并且您无法滑过视频 我们必须通过替换视频图像然后使用来解决这个问题window
  • Javascript 事件 addEventListener 为同一函数注册多次;使用 OOP JavaScript

    我正在使用面向对象的 Javascript 并结合注册事件侦听器 根据我对事件监听器的理解 如果应用于 eventtarget 的函数已经注册 则重复尝试添加相同的事件监听器将被忽略 换句话说 它应该只触发一次 但下面的代码并非如此 也可以
  • 使用 JSON 序列化/反序列化 Pandas DataFrame 时如何保留索引的时区

    我需要使用以下方法将 Pandas DataFrame 序列化为 JSONto json方法 这是我如何做到这一点的一个例子 import pandas import numpy as np dr pandas date range 201