python - 带有日期(或日期时间)的 Pandas 'astype'
问题描述
这个答案包含一种非常优雅的方式,可以在一行中设置所有类型的 pandas 列:
# convert column "a" to int64 dtype and "b" to complex type
df = df.astype({"a": int, "b": complex})
我开始认为,不幸的是,它的应用有限,您迟早将不得不使用各种其他方法在多行中转换列类型。我进行了测试'category'
并且工作正常,因此它将采用实际的 python 类型,例如int
or complex
,然后是引号中的熊猫术语,例如'category'
.
我有一列日期,如下所示:
25.07.10
08.08.10
07.01.11
我查看了有关转换日期列的这个答案,但它们似乎都不适合上面的优雅语法。
我试过了:
from datetime import date
df = df.astype({"date": date})
但它给出了一个错误:
TypeError: dtype '<class 'datetime.date'>' not understood
(全迹省略)
我也试过pd.Series.dt.date
了,也没有用。是否可以像这样在一行中投射所有列,包括日期或日期时间列?
解决方案
这已在评论中得到回答,其中指出以下工作:
df.astype({'date': 'datetime64[ns]'})
另外,你可以在读入数据时设置dtype:
pd.read_csv('path/to/file.csv', parse_dates=['date'])
推荐阅读
- javascript - React/Redux 无法读取未定义的“prop”
- javascript - 更新不是函数-> firebase/firestore 写入数据
- rabbitmq - 我可以通过 AMQP 客户端查看 RabbitMQ 中未确认消息的数量吗?
- mongodb - 使用 WSL 2 时的 MongoDB 问题(错误:连接 ECONNREFUSED 127.0.0.1:27017)
- javascript - 如何在javascript中获取图像的src
- linux - 如何从特定列添加行元素并找出其中两个的百分比值?
- spring-boot - Springdoc 允许使用 Spring Security 对 rest 控制器进行身份验证访问
- c# - 值不能为空。(参数's')尝试将excel文件上传到数据库时
- kubernetes - 如何设置 Kubernetes nodeport 服务超时?
- php - 更改索引 mysql 表以优化 WordPress