我已经将一列对象转换为datetimes,但在我将其保存为并重新加载后,列数据类型又变回了对象

2024-03-29 08:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的df:

ids = [1, 2, 3, 4]
start_time = ["2020-04-26 17:45:14", "2020-04-17 17:08:54",
              "2020-04-01 17:54:13", "2020-04-07 12:50:19"]
df = pd.DataFrame({"id": ids, "started_at": start_time})

首先,我将started_at列从strings转换为datetimes,如下所示:

df['started_at'] = pd.to_datetime(df['started_at'], format="%Y-%m-%d %H:%M:%S")

然后,我将它保存到了_csv。但是当我重新导入df时,“started_at”列的数据类型变回objects。有没有办法解决这个问题


1条回答
网友
1楼 · 发布于 2024-03-29 08:31:17

是的,csv不存储datetime,因为它是Python中的一种数据类型。当您再次读取该文件时,pandas会看到非数值并显示“哦,这是一个字符串”

实现这一点的方法不是尝试将某些内容存储在CSV文件中作为pandas datetime,而是让pandas在读取文件时解析日期

df = pd.read_csv(file_name, parse_dates=["started_at"])

相关问题 更多 >