以一种日期时间格式导入数据帧,并提供给需要此UTC格式的日期的API服务(请注意TZ):

2023-07-26T11:04:23.893Z

值得注意的是,它将被转换为JSON,因此最终答案可以得到一个字符串.但如果本机Pandas时间处理可以做到这一点,那将是一个更干净的解决方案.

在单独的日期,而不是DataFrame天,我是这样做的:

due_date_end = datetime.now() + relativedelta(months=+3)
due_date_end = due_date_end.isoformat('T') + 'Z'

当我try 对df列使用.isoformat()方法时,我得到了一个异常.

我还try 了以下几种方法:

读取文件时解析日期

df = pd.read_csv('my_test_file.csv',parse_dates=['job_due_date'])

使用我在上看到的相关答案进行转换,因此:

df['due_date'] = pd.to_datetime(end_user_df['job_due_date']).dt.tz_localize('UTC')

另一种基于SO答案的变体是:

end_user_df['due_date'] = pd.to_datetime(end_user_df['job_due_date']).dt.tz_localize('UTC') 
end_user_df['due_date'] = end_user_df['due_date'].to_string().strftime("%Y-%m-%dT%H:%M:%S%Z")

接下来我应该try 什么呢?

推荐答案

原则上,您需要将表示为字符串的DateTime转换为DateTime数据类型,以便处理数据.要生成某种格式的输出(字符串),可以使用dt命名空间的strftime方法.请注意,对于strftime,您必须使用文字‘Z’来表示UTC(而不是%Z).

作为对一个类似问题的answer的补充,下面是一个如何在ISO格式输出中获得不同精度的小数位秒的示例.

import pandas as pd

df = pd.DataFrame({"date": ["2023-07-26T11:04:23.893001Z"]})

# for working with the data, convert to datetime data type
df["date_dt"] = pd.to_datetime(df["date"])

print(df.dtypes)
# date                    object
# date_dt    datetime64[ns, UTC]
# dtype: object

# microsecond precision fractional seconds: just use %f
print(df["date_dt"].dt.strftime("%Y-%m-%dT%H:%M:%S.%fZ"))
# 0    2023-07-26T11:04:23.893001Z
# Name: date_dt, dtype: object

# millisecond precision fractional seconds: truncate output and add 'Z'
print(df["date_dt"].dt.strftime("%Y-%m-%dT%H:%M:%S.%f").str[:-3] + "Z")
# 0    2023-07-26T11:04:23.893Z
# Name: date_dt, dtype: object

# no fractional seconds at all: no %f
print(df["date_dt"].dt.strftime("%Y-%m-%dT%H:%M:%SZ"))
# 0    2023-07-26T11:04:23Z
# Name: date_dt, dtype: object

Python相关问答推荐

Matplotlib轮廓线值似乎不对劲

给定数据点,制定它们的关系

如何在Python中使用ijson解析SON期间检索文件位置?

跟踪我已从数组中 Select 的样本的最有效方法

如何计算两极打印机中 * 所有列 * 的出现次数?

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

如何在给定的条件下使numpy数组的计算速度最快?

如何在WSL2中更新Python到最新版本(3.12.2)?

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

如何在图中标记平均点?

什么是合并两个embrame的最佳方法,其中一个有日期范围,另一个有日期没有任何共享列?

重置PD帧中的值

从旋转的DF查询非NaN值

Numpyro AR(1)均值切换模型抽样不一致性

30个非DATETIME天内的累计金额

如何在Python Pandas中填充外部连接后的列中填充DDL值

无法在Spyder上的Pandas中将本地CSV转换为数据帧

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

随机森林n_估计器的计算