【问题标题】:to_datetime not showing timestampto_datetime 不显示时间戳
【发布时间】:2018-03-19 10:37:56
【问题描述】:

我在 pandas 数据框中有一列,如下所示:

>>> print(df['SESSION_DATE'])
0    2008-05-20
1    2013-03-15
2    2014-10-14
3    2006-08-04
4    2006-11-20
Name: SESSION_DATE, dtype: datetime64[ns]

我正在尝试基于此创建一个新列。但我也希望显示时间戳。这是我尝试过的:

>>> df['NEW_COMPL_DTE'] = pd.to_datetime(df['SESSION_DATE'])
>>> print(df['NEW_COMPL_DTE'])
0    2008-05-20
1    2013-03-15
2    2014-10-14
3    2006-08-04
4    2006-11-20
Name: NEW_COMPL_DTE, dtype: datetime64[ns]

我希望输出在每个日期之后都包含一个00:00:00。请指教。

【问题讨论】:

  • 如果你想要的输出在所有行中都只是00:00:00,为什么不直接写在那里而不是使用日期时间?

标签: python pandas datetime


【解决方案1】:

我认为你应该使用 strptime。喜欢:

from datetime import datetime
mywanteddate = datetime.strptime("%s 00:00:00" % (df['SESSION_DATE']), "%Y-%m-%d %H:%M:%S")
print(mywanteddate) # 2008-05-20 00:00:00

【讨论】:

  • 在发布之前尝试运行它。
  • 对于python2.7,打印很好。但是对于python3,应该是print("string")
  • 不,这不是问题所在。 df['SESSION_DATE'] 是一列字符串日期。你认为% df[...] 会如何工作?
【解决方案2】:

你应该可以用这个

import numpy as np
import pandas as pd
from datetime import datetime
dates = [datetime(2008, 5, 20), datetime(2013, 3, 15), datetime(2012, 10, 14), datetime(2006, 8, 4), datetime(2006, 11,20)]
index = pd.DatetimeIndex(dates)
for i in index.astype(np.int64):
    print(pd.to_datetime(i, unit='ns'))

得到这个

2008-05-20 00:00:00
2013-03-15 00:00:00
2012-10-14 00:00:00
2006-08-04 00:00:00
2006-11-20 00:00:00

【讨论】:

    【解决方案3】:

    如果不包含时间戳,则假定为00:00:00,因此pd.to_datetime 不会显式显示它。

    如果你只想展示它,你可以这样做:

    pd.to_datetime(s).dt.strftime('%y-%m-%d %h:%I:%s')
    0    2008-05-20 00:00:00
    1    2013-03-15 00:00:00
    2    2014-10-14 00:00:00
    3    2006-08-04 00:00:00
    4    2006-11-20 00:00:00
    Name: 1, dtype: object
    

    或者,这更简单,但不那么整洁。如果您的列有字符串,您可以使用它。

    s + ' 00:00:00'
    0    2008-05-20 00:00:00
    1    2013-03-15 00:00:00
    2    2014-10-14 00:00:00
    3    2006-08-04 00:00:00
    4    2006-11-20 00:00:00
    Name: 1, dtype: object
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 2014-01-07
      • 2021-04-30
      • 2021-09-23
      • 2014-07-28
      • 1970-01-01
      相关资源
      最近更新 更多