热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pandas中的时区相关

pytz库时间序列处理中比较烦的是对时区的处理,尤其是夏令时(DST)转变。许多人都选择以协调世界时(UTC)

pytz 库

时间序列处理中比较烦的是对时区的处理,尤其是夏令时(DST)转变。
许多人都选择以协调世界时(UTC) 来处理时间序列
在python中 时区信息来自于 pytz 库。

import datetimeimport pandas as pdimport numpy as npimport pytzr1 = pytz.common_timezones[-5:]# print(r1) # ['US/Eastern', 'US/Hawaii', 'US/Mountain', 'US/Pacific', 'UTC']# 获取时区对象tz = pytz.timezone("US/Eastern")# print(tz)

本地化与转换

在默认的情况下 pd 中的时区是单纯的 native 时区

rng = pd.date_range('3/9/2012', periods=6, freq="D")# print(rng)ts = pd.Series(np.random.randn(len(rng)), index=rng)# print(ts)# 其索引的 tz 字段是 None# print(ts.index.tz) # None# 在生成日期范围的时候可以加上时区集rng = pd.date_range('3/9/2012', periods=10, freq="D", tz="UTC")# print(rng)# 从单纯到本地化的转换是通过 tz_localize实现的# print(ts)ts_utc = ts.tz_localize("UTC")# print(ts_utc)# print(ts_utc.index)# 一旦时间序列被本地化到某个特定的时区,就可以用 tz_convert 转为别的时区ts_eas = ts_utc.tz_convert("US/Eastern")# print(ts_eas.index)# tz_localize 和 tz_convert 也是 DataFrameIndex 的实例方法ts_shanghai = ts.index.tz_localize("Asia/Shanghai")# print(ts_shanghai)

操作时区意识型 Timestamp 对象

stamp = pd.Timestamp("2011-03-12 04:00")# print(stamp)stamp_utc = stamp.tz_localize("utc")# print(stamp_utc)eas_utc = stamp_utc.tz_convert("US/Eastern")# print(eas_utc)# 在创建 Timestamp 的时候,就可以传入一个时区信息stamp_moscow = pd.Timestamp("2011-03-12 04:00", tz="Europe/Moscow")# print(stamp_moscow)"""时区意识型TimeStamp对象在内部保留了一个 UTC 时间戳对象这个 UTC 值在时区的转换过程中是不会发生变化的 """v1 = stamp_utc.valuev2 = eas_utc.valuev3 = stamp_moscow.value# print(v1 == v2)# print(v1 == v3)"""当使用 pd 的 DateOffset 对象执行算术运算 运算过程会自动关注是否存在夏令时转变期"""from pandas.tseries.offsets import Hourstamp = pd.Timestamp('2012-03-12 01:30', tz="US/Eastern")# print(stamp)# print(stamp.tz_convert("UTC"))# print()t2 = stamp + Hour()# print(t2)# print(t2.tz_convert('UTC'))

不同的时区之间的运算

"""不同的时区之间的运算 最终的结果会是 UTC由于时间戳其实是以 UTC 格式存储的,所以是一个很简单的运算,并不需要任何转换 """rng = pd.date_range("3/7/2012 9:30", periods=10, freq="B")ts = pd.Series(np.random.randn(len(rng)), index=rng)# print(ts)ts1 = ts[:7].tz_localize("Europe/London")ts2 = ts1[2:].tz_convert("Europe/Moscow")# print(ts1)# print(ts2)res = ts1 + ts2print(res.index)


推荐阅读
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • 假设我有两个数组A和B,其中A和B都是mxn.我现在的目标是,对于A和B的每一行,找到我应该在B的相应行中插入A的第i行元素的位置.也就是说,我希望将np.digitize或np. ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 原文链接:Python:获取“3年前的今天”的日期时间Python:getdatetimefor3yearsagotoday在Python中,如何获取3年前的今天的datetime ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
author-avatar
宝蓝小礼服
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有