【Python实用基础整合(三)】儒略日计算、Pandas写Excel文件多Sheet以及datetime64[ns]时间格式处理

文章介绍了如何在Python中进行儒略日与常规日期的转换,并展示了使用Pandas的ExcelWriter创建Excel文件时处理多个Sheet的方法,以及如何处理datetime64[ns]时间格式来获取时间属性。
摘要由CSDN通过智能技术生成

一、儒略日计算

儒略日(Julian Day)是在儒略周期内以连续的日数计算时间的计时法,主要用于天文学领域,SMOKE、CMAQ、CAMx等模型中也有使用。Linux中主要使用IOAPI库中的juldatejul2greg来进行常规日期和儒略日的相互转化。Python中儒略日与一般格式日期的转化可参考以下方法。


from datetime import datetime


# 1.日期转儒略日
def date2jd(date):
    fmt = '%Y-%m-%d'  # fmt具体根据date的格式
    dt = datetime.strptime(date, fmt)
    yyyy = str(dt.timetuple().tm_year).zfill(4)
    jjj = str(dt.timetuple().tm_yday).zfill(3)
    return yyyy + jjj


# 2.儒略日转日期,jd需为str格式
def jd2date(jd):
    fmt = '%Y-%m-%d'  # fmt具体根据date想要转成的格式而定
    dt = datetime.strptime(jd, '%Y%j').date()
    return dt.strftime(fmt)


# 3.测试
date_test = '2023-02-01'
jd_test = '2023032'
print(f">>> {date_test}的儒略日为{date2jd(date_test)} <<<")
print(f">>> {jd_test}的常规日期为{jd2date(jd_test)} <<<")

# 4.输出为:
>>> 2023-02-01的儒略日为2023032 <<<
>>> 2023032的常规日期为2023-02-01 <<<

二、Pandas写Excel文件多Sheet处理

Pandas中使用常规的to_excel方法将DataFrame写入Excel文件时,即使多次写入并指明sheet_name参数为不同值,在Excel文件中也会只有会后一次写入的Sheet。要实现多个Sheet写入,可使用pd.ExcelWriter方法:

# excel_file_name 为要输出的Excel全路径文件名
# header和index参数与多sheet无关,可根据实际需要进行修改即可
# header=None简单理解为不将df的列名(表头)写入文件
# index=False简单理解为不将df的index写入文件

with pd.ExcelWriter(excel_file_name) as writer:
    df_A.to_excel(writer, sheet_name='A', header=None, index=False)
    df_B.to_excel(writer, sheet_name='B', header=None, index=False)

以上方法还有个好处是,打开的writer会自动close,无需额外处理。

三、datetime64[ns]时间格式处理

在处理时序数据时候,会经常使用pd.to_datetime将表示时间的列(值为str类型)转为Python中能用时间方法处理的列。pd.to_datetime处理得到的时间列数据类型为datetime64[ns]
在这里插入图片描述

要对该列使用.day.hour等方法获取相应的日、小时等属性值,可使用该列的dt属性方法即可获取整列的需求值(day、hour等)

在这里插入图片描述


【述毕】

笔者独自运营了微信公众号,用于分享个人学习及工作生活趣事,大家可以关注一波。(微信搜索“微思研”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⁣北潇

老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值