python - 熊猫时间戳到 datetime.datetime()
问题描述
我有一个带有时间戳列的数据框。我想将其转换为 datetime.datetime 格式。这是我尝试过的:
import pandas as pd
ts = pd.Timestamp('2019-01-01 00:00:00', tz=None)
df = pd.DataFrame({"myDate": [ts]})
df["myDate"] = df["myDate"].dt.to_pydatetime()
myList = df["myDate"].dt.to_pydatetime()
print(df.dtypes)
print(type(myList[0]))
第一个 print() 返回时间戳(意外) 第二个 print() 返回 datetime(预期) 如何使此数据帧重新分配持续存在?
* 编辑:我想要实现的目标 * 将数据框中的时间戳与列表中的日期时间进行比较,如下所示:
ts = pd.Timestamp('2019-01-01 00:00:00', tz=None)
df = pd.DataFrame({"my_date": [ts]})
df_set = set(df["my_date"].values)
dt_set = set([datetime(2019, 1, 1, 0, 0, 0)])
print(dt_set - df_set)
返回:{datetime.datetime(2019, 1, 1, 0, 0)}。应该是空集。
解决方案
你可以使用pd.DatetimeIndex
和它的difference
方法。一般来说,set
与 Pandas / NumPy 对象一起使用是低效的。相关:Pandas pd.Series.isin 性能与 set 与 array。
from datetime import datetime
df = pd.DataFrame({"my_date": [pd.Timestamp('2019-01-01 00:00:00', tz=None),
pd.Timestamp('2019-01-10 00:00:00', tz=None)]})
datetime_list = [datetime(2019, 1, 1, 0, 0, 0)]
diff = pd.DatetimeIndex(df['my_date']).difference(pd.DatetimeIndex(datetime_list))
# DatetimeIndex(['2019-01-10'], dtype='datetime64[ns]', freq=None)
推荐阅读
- kubernetes - gke上的traefik设置不起作用
- android - 进度对话框未在 Android 中使用 Context 显示
- python - Python Paramiko 挂在 .recv(1024)
- python - 类不会将 self 变量传递给它内部的函数
- javascript - 从对象数组中删除未定义的元素
- c++ - (c++) STL 向量的 STL 向量
- node.js - 对于用户验证,即使使用 JWT 也需要在服务器端存储数据对吗?
- postgresql - 多态多对多的数据库策略比较:RDB vs. NoSQL
- javascript - 使用 React 渲染时如何访问现有的 dom 元素?
- azure - 无需端口转发或 UPnP 即可访问 Windows IoT 设备门户