我正在使用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时,它告诉我该列的类型为object。
然后我在下面一行,
myDates = pd.to_datetime(df ['TDate'])
所以myDates是熊猫系列。
但是,如果我访问此myDates系列的一个元素并检查它告诉我的类型是libs.tslib.timestamps.Timestamp
我只想将原始dataframe列从对象转换为yyyy-mm-dd格式的日期。最好的方法是什么?
我看过将时间戳转换为日期,但这没有用,因为时间戳是字符串文字而不是整数。
答案 0 :(得分:2)
使用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 date对象,因此大多数类似datetime的函数都会失败。
答案 1 :(得分:1)
此代码段会将时间戳转换为日期
df['TDate']= pd.to_datetime(df['TDate']).dt.date