将pandas数据帧列转换为np.日期时间64

2024-09-30 08:15:56 发布

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

我想将np.datetime64列添加到pandas数据帧中,该数据框是从包含年、月、日、小时和分钟的.csv文件中读取的,并将其用作索引。我将这些单独的列组合成一列datetime字符串。在

import numpy as np
import pandas as pd
filename = 'test.csv'
df = pd.read_csv(filename, header=0, usecols = [2,3,4,5,6], names = ['y','m','d','h','min'],dtype = {'y':'str','m':'str','d':'str','h':'str','min':'str'})  #read csv file into df
df['datetimetext'] = (df['y']+'-'+df['m']+'-'+df['d']+' '+df['h']+':'+df['min']+':00')

所以数据帧是这样的:

^{pr2}$

现在我想添加一个日期时间格式为np.datetime64的列

我想写作

df['datetime'] = np.datetime64(df['datetimetext'])

但这就造成了一个错误

ValueError: Could not convert object to NumPy datetime

我需要迭代数据帧的每一行,还是有更优雅的解决方案?在


Tags: csv数据importpandasdfreaddatetimeas
1条回答
网友
1楼 · 发布于 2024-09-30 08:15:56

最简单的方法是

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

LINK TO DOCS

但是,如果列的名称正确,则可以直接从命名列进行转换。我用rename重命名了你的专栏

^{pr2}$

enter image description here

接下来,我将执行转换并一次性将其分配给索引

df.index = pd.to_datetime(df)
df

enter image description here

相关问题 更多 >

    热门问题