python - 我已经将 pandas 的对象列转换为日期时间,但是在我用 to_csv 保存并重新加载它之后,列数据类型变回对象
问题描述
这是我的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 列从字符串转换为日期时间,如下所示:
df['started_at'] = pd.to_datetime(df['started_at'], format="%Y-%m-%d %H:%M:%S")
然后,我使用 to_csv 保存了它。但是当我重新导入 df 时,“started_at”列的数据类型变回了对象。有没有什么办法解决这一问题?
解决方案
是的,csv 不存储日期时间,因为它是 Python 中的一种数据类型。当您再次读取文件时,pandas 会看到非数字值并显示“哦,这是一个字符串”。
解决这个问题的方法不是尝试将某些内容作为 pandas 日期时间存储在 CSV 文件中,而是让 pandas 在读取文件时解析日期。
df = pd.read_csv(file_name, parse_dates=["started_at"])
推荐阅读
- angular - 角度2反应形式无需触摸即可获取输入值
- vb.net - 来自 storageFile 的裁剪图像在发布模式下变为空,但在调试模式下有效
- r - 从数据列中删除点
- perl - 带有 Net::IP 的下一个块的第一个 IP
- azure-web-app-service - 如何防止直接访问托管在 Azure 应用服务中的 API
- php - 两个变量之间的减法不起作用,如何解决?
- python - 添加/删除包含多个小部件pyqt的布局
- reactjs - Invariant Violation:Invariant Violation:元素类型无效:预期为字符串(对于内置组件)但得到:未定义
- typescript - 强制对象至少有一个键( Object.keys(o).length > 0 )
- algorithm - 模式和序列 - 将“a”表示为“n”的函数