防止pandas将datetime对象转换为pandas时间戳

2024-04-19 17:56:42 发布

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

我有一个非常简单的问题。我想将日期时间字符串解析为python日期时间对象,并将它们存储在数据帧中。但是,我不知道如何防止pandas将datetime对象转换为pandas时间戳。例如:

import dateutil
import pandas as pd
from io import StringIO

time = '2020-11-03T15:55:21'

no_pandas = dateutil.parser.parse(time)
print (type(no_pandas))

#Create a simple csv
convert = {'Time': lambda x: dateutil.parser.parse(x)}
csv = StringIO(f'Time\n{time}')
df = pd.read_csv(csv, parse_dates=False, converters=convert)

print (type(df.iloc[0]['Time']))

其中打印: <;类“datetime.datetime”>; <;类“pandas._libs.tslibs.Timestamp.Timestamp”>

为什么pandas会覆盖我对datetime对象的偏好?我如何防止它这样做


Tags: csv对象noimportparserpandasdatetimetime
2条回答

出于某种原因,pandas似乎将类型重写为pd.Timestamp。您应该确保pandas将以一系列dtype=“object”读取列。所以你应该做一些类似的事情:

df['Time'] = pd.Series(df['Time'].dt.to_pydatetime(), dtype="object")

加载到pandas后添加to_pydatetime

df['Time'] = df['Time'].dt.to_pydatetime()

出去

type(pd.to_datetime(df['Time']).dt.to_pydatetime()[0])
Out[46]: datetime.datetime

相关问题 更多 >