我使用的是 python 3.7 版。
我有一个数据框 df,其中包含一个名为 TDate 的列。
该列如下所示。
2019-01-01 00:00:00
2019-01-02 00:00:00
2019-01-03 00:00:00
2019-01-04 00:00:00
当我执行 df.dtypes 时,它告诉我该列是对象类型。
然后我有下面这行,
myDates = pd.to_datetime(df['TDate'])
所以 myDates 是一个 pandas 系列。
但是,如果我访问这个 myDates 系列的一个元素并检查类型,它告诉我它是一个 libs.tslib.timestamps.Timestamp
我只想将原始数据框列从对象转换为格式为 yyyy-mm-dd 的日期。这样做的最佳方法是什么?
我查看了将时间戳转换为日期的方法,但没有成功,因为时间戳是字符串文字而不是整数。
最佳答案
使用Series.dt.floor
从列中删除时间信息(或更好地将其设置为每个日期时间的默认 00:00:00
值):
myDates = pd.to_datetime(df['TDate']).dt.floor('d')
#for save to same column
#df['TDate'] = pd.to_datetime(df['TDate']).dt.floor('d')
myDates = pd.to_datetime(df['TDate']).dt.normalize()
#for save to same column
#df['TDate'] = pd.to_datetime(df['TDate']).dt.normalize()
如果使用:
myDates = pd.to_datetime(df['TDate']).dt.date
然后输出是 python 日期对象,所以大多数 datetimelike 函数都失败了。
关于python - 将数据框列从对象转换为日期而不是日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56923731/