簡體   English   中英

如何從 Python 中的 dataframe 中的 DateTimeIndex 中刪除微秒?

[英]How to remove microseconds from DateTimeIndex in dataframe in Python?

我想從索引中刪除微秒。

我的索引是這樣的:

DatetimeIndex(['2003-11-20 13:07:40.895000+00:00',
           '2003-11-20 13:16:13.039000+00:00',
           '2003-11-20 13:24:44.868000+00:00',
           '2003-11-20 13:33:17.013000+00:00',
           '2003-11-20 13:41:49.158000+00:00',
           '2003-11-20 13:50:20.987000+00:00',
           '2003-11-20 13:58:53.132000+00:00',
           '2003-11-20 14:07:24.961000+00:00',
           '2003-11-20 14:15:57.106000+00:00',
           '2003-11-20 14:24:28.935000+00:00',
           ...
           '2003-12-04 19:28:56.025000+00:00',
           '2003-12-04 19:37:27.854000+00:00',
           '2003-12-04 19:45:59.999000+00:00',
           '2003-12-04 19:54:32.143000+00:00',
           '2003-12-04 20:03:03.972000+00:00',
           '2003-12-04 20:11:36.117000+00:00',
           '2003-12-04 20:20:07.946000+00:00',
           '2003-12-04 20:28:40.091000+00:00',
           '2003-12-04 20:37:11.920000+00:00',
           '2003-12-04 20:45:44.065000+00:00'],
          dtype='datetime64[ns, UTC]'

而且我想刪除微秒,以便僅獲得類似的內容: '2003-12-04 20:45:44'我不想將其轉換為字符串,因為它需要保留日期時間,因為它是索引dataframe 的。 我一直在尋找這個,但我只找到了這個,它不起作用:

df.index.replace(microsecond=0, inplace = True)

你能幫我嗎?

給定帶有時區信息和毫秒數據的 pd.DateTimeIndex,如下所示:

didx = pd.DatetimeIndex(['2003-11-20 13:07:40.895000+00:00',
           '2003-11-20 13:16:13.039000+00:00',
           '2003-11-20 13:24:44.868000+00:00',
           '2003-11-20 13:33:17.013000+00:00',
           '2003-11-20 13:41:49.158000+00:00',
           '2003-11-20 13:50:20.987000+00:00',
           '2003-11-20 13:58:53.132000+00:00',
           '2003-11-20 14:07:24.961000+00:00',
           '2003-11-20 14:15:57.106000+00:00',
           '2003-11-20 14:24:28.935000+00:00',
           '2003-12-04 19:28:56.025000+00:00',
           '2003-12-04 19:37:27.854000+00:00',
           '2003-12-04 19:45:59.999000+00:00',
           '2003-12-04 19:54:32.143000+00:00',
           '2003-12-04 20:03:03.972000+00:00',
           '2003-12-04 20:11:36.117000+00:00',
           '2003-12-04 20:20:07.946000+00:00',
           '2003-12-04 20:28:40.091000+00:00',
           '2003-12-04 20:37:11.920000+00:00',
           '2003-12-04 20:45:44.065000+00:00'],
          dtype='datetime64[ns, UTC]')

您可以使用pd.DateTimeIndex.floortz_localize(None)將時間戳截斷為秒並刪除時區信息。

didx.floor('S').tz_localize(None)

Output:

DatetimeIndex(['2003-11-20 13:07:40', '2003-11-20 13:16:13',
               '2003-11-20 13:24:44', '2003-11-20 13:33:17',
               '2003-11-20 13:41:49', '2003-11-20 13:50:20',
               '2003-11-20 13:58:53', '2003-11-20 14:07:24',
               '2003-11-20 14:15:57', '2003-11-20 14:24:28',
               '2003-12-04 19:28:56', '2003-12-04 19:37:27',
               '2003-12-04 19:45:59', '2003-12-04 19:54:32',
               '2003-12-04 20:03:03', '2003-12-04 20:11:36',
               '2003-12-04 20:20:07', '2003-12-04 20:28:40',
               '2003-12-04 20:37:11', '2003-12-04 20:45:44'],
              dtype='datetime64[ns]', freq=None)

您應該能夠在每個上使用.strftime('%Y-%m-%d %H:%M:%S')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM