You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将dask_cudf列转换为datetime类型?

如何将dask_cudf中字符串或纳秒格式的列转换为datetime对象?

pandas和cudf均提供to_datetime方法实现时间格式转换,以下是示例代码:

import pandas as pd
import cudf

# pandas实现
df = pd.DataFrame( {'city' : ['Dallas','Bogota','Chicago','Juarez'], 
                    'timestamp' : [1664828099973725440,1664828099972763136,1664828094775313920,1664828081313273856]})

df['datetime'] = pd.to_datetime(df['timestamp'])

# cudf实现
cdf = cudf.DataFrame( {'city' : ['Dallas','Bogota','Chicago','Juarez'], 
                       'timestamp' : [1664828099973725440,1664828099972763136,1664828094775313920,1664828081313273856]})
cdf['datetime'] = cudf.to_datetime(cdf['timestamp'])

print(df)
print(cdf) 

两种方式的执行结果一致:

city            timestamp                      datetime
0   Dallas  1664828099973725440 2022-10-03 20:14:59.973725440
1   Bogota  1664828099972763136 2022-10-03 20:14:59.972763136
2  Chicago  1664828094775313920 2022-10-03 20:14:54.775313920
3   Juarez  1664828081313273856 2022-10-03 20:14:41.313273856

错误的dask处理方式

若直接使用dask.dataframe的dd.to_datetime()处理dask_cudf对象会报错,比如以下代码:

import dask_cudf
from dask import dataframe as dd

ddf = dask_cudf.from_cudf(cdf, npartitions=2)

# 此代码会报错,因为dd.to_datetime不兼容dask_cudf分区
dd.to_datetime(ddf['timestamp']).head()

正确的dask_cudf转换方式

dask_cudf提供了适配GPU的dask_cudf.to_datetime()方法,可直接处理纳秒格式或字符串格式的时间列,同时支持从批量CSV文件加载数据并转换:

1. 从批量CSV创建dask_cudf并转换纳秒格式列

import dask_cudf

# 从同目录下所有CSV文件创建dask_cudf
ddf = dask_cudf.read_csv("*.csv")

# 将纳秒timestamp列转换为datetime类型
ddf['datetime'] = dask_cudf.to_datetime(ddf['timestamp'])

# 查看转换结果
print(ddf[['timestamp', 'datetime']].head())

2. 转换字符串格式的时间列

如果时间列是字符串格式,可通过format参数指定解析格式:

# 假设str_timestamp列格式为"YYYY-MM-DD HH:MM:SS"
ddf['datetime'] = dask_cudf.to_datetime(ddf['str_timestamp'], format='%Y-%m-%d %H:%M:%S')

注意:dask_cudf的to_datetime()方法参数与cudf、pandas的to_datetime()基本一致,支持unit、format等常用参数,可根据实际需求调整。

内容的提问来源于stack exchange,提问作者dleal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:05:15