python - 将数据框列从对象转换为日期而不是日期时间

标签 python pandas dataframe

我使用的是 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')

Series.dt.normalize :

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/

相关文章:

python - 使用 pandas 计算两个特定行之间的百分比变化

python - 根据来自另一列 pandas 的相同或更接近的值替换列中的值

python - ENTER 按键使用 Selenium WebDriver 和 python

python - 如何在 python 中查看 Heroku 日志记录和运行时错误输出

python - 从字符串中添加不同的项目到列表中

pandas - 随机数据框列排序

python - 如何计算DataFrame中字符串中的单词数?

Python Pandas - 自上次出现在 200 万行数据框中以来的分钟数

替换R中数据框中的值

dataframe - 使用 OPTIM() 将附加列更改为现有数据框或 tibble