TShopping

 找回密碼
 註冊
搜索
查看: 1970|回復: 0
打印 上一主題 下一主題

[教學] pandas.to_datetime 用法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2021-7-15 13:52:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True)
將參數轉換為日期時間

DataFrame.astype
將參數轉換為指定的 dtype。

to_timedelta
將參數轉換為 timedelta。

convert_dtypes
轉換數據類型。

例子
從 DataFrame 的多列組裝日期時間。鍵可以是常見的縮寫,如 ['year', 'month', 'day', 'minute', 'second', 'ms', 'us', 'ns']) 或相同的複數形式
  1. df = pd.DataFrame({'year': [2015, 2016],
  2.     'month': [2, 3],
  3.     'day': [4, 5]})
  4. pd.to_datetime(df)
  5. 0   2015-02-04
  6. 1   2016-03-05
  7. dtype: datetime64[ns]
複製代碼
如果日期不符合[color=rgba(var(--pst-color-link),1)]時間戳限制,則傳遞 errors='ignore' 將返回原始輸入而不是引發任何異常。

除了強制將非日期(或不可解析的日期)強制為 NaT 之外,傳遞 errors='coerce' 將強制將越界日期強制為 NaT。
  1. pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')
  2. datetime.datetime(1300, 1, 1, 0, 0)
  3. pd.to_datetime('13000101', format='%Y%m%d', errors='coerce')
  4. NaT
複製代碼



傳遞 infer_datetime_format=True 通常可以加速解析,如果它不是完全 ISO8601 格式,而是常規格式。

  1. s = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000'] * 1000)
  2. s.head()
  3. 0    3/11/2000
  4. 1    3/12/2000
  5. 2    3/13/2000
  6. 3    3/11/2000
  7. 4    3/12/2000
  8. dtype: object
複製代碼
  1. %timeit pd.to_datetime(s, infer_datetime_format=True)  
  2. 100 loops, best of 3: 10.4 ms per loop
複製代碼
  1. %timeit pd.to_datetime(s, infer_datetime_format=False)  
  2. 1 loop, best of 3: 471 ms per loop
複製代碼

使用 timestamp時間戳記

  1. pd.to_datetime(1490195805, unit='s')
  2. Timestamp('2017-03-22 15:16:45')
  3. pd.to_datetime(1490195805433502912, unit='ns')
  4. Timestamp('2017-03-22 15:16:45.433502912')
複製代碼
對於 float arg,可能會發生精確舍入。為了防止意外行為,請使用固定寬度的精確類型。

使用非 timestamp時間戳記

  1. pd.to_datetime([1, 2, 3], unit='D',origin=pd.Timestamp('1960-01-01'))
  2. DatetimeIndex(['1960-01-02', '1960-01-03', '1960-01-04'],dtype='datetime64[ns]', freq=None)
複製代碼

如果輸入是類似列表的並且輸入的元素是混合時區,則如果 utc=False,則返回對像類型為 Index。

  1. pd.to_datetime(['2018-10-26 12:00 -0530', '2018-10-26 12:00 -0500'])
  2. Index([2018-10-26 12:00:00-05:30, 2018-10-26 12:00:00-05:00], dtype='object')
複製代碼
  1. pd.to_datetime(['2018-10-26 12:00 -0530', '2018-10-26 12:00 -0500'],
  2.                utc=True)
  3. DatetimeIndex(['2018-10-26 17:30:00+00:00', '2018-10-26 17:00:00+00:00'],
  4.               dtype='datetime64[ns, UTC]', freq=None)
複製代碼

原文文章

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-24 20:47 , Processed in 0.349846 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表