【问题标题】:converting dataframe column from object to date not datetime将数据框列从对象转换为日期而不是日期时间
【发布时间】:2019-11-17 07:23:56
【问题描述】:

我使用的是 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 是一个熊猫系列。

但是,如果我访问这个 myDates 系列的一个元素并检查它告诉我它的类型是 libs.tslib.timestamps.Timestamp

我只想将原始数据框列从对象转换为格式为 yyyy-mm-dd 的日期。这样做的最佳方法是什么?

我研究了将时间戳转换为日期,但这不起作用,因为时间戳是字符串文字而不是整数。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    这个 sn-p 会将时间戳转换为日期

    df['TDate']= pd.to_datetime(df['TDate']).dt.date
    

    【讨论】:

      【解决方案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')
      

      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 函数都失败了。

      【讨论】:

      • I just want to convert the original dataframe column from an object to a date 问题中提到,你为什么不保存在 df['TDate'] 中?
      猜你喜欢
      • 2017-01-08
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 2020-07-06
      • 2019-01-24
      相关资源
      最近更新 更多