簡體   English   中英

將pandas dataframe中的對象列轉換為datetime

[英]Converting object column in pandas dataframe to datetime

我在pandas數據框中有一個對象列,格式為dd / mm / yyyy,我想用to_datetime轉換。

我嘗試使用以下內容將其轉換為datetime:

df['Time stamp'] = pd.to_datetime(df['Time stamp'], format= '%d/%m/%Y')

我收到以下錯誤:

TypeError: Unrecognized value type: <class 'str'>
ValueError: unconverted data remains:  

這是否意味着某處有一個空行,我檢查了原來的csv而我看不到一個。

這意味着你有一個額外的空間。 雖然pd.to_datetime非常擅長解析日期而通常沒有指定任何格式,但是當您實際指定格式時,它必須完全匹配。

您可以通過添加.str.strip()來解決您的問題,以在轉換之前刪除額外的空格。

import pandas as pd
df['Time stamp'] = pd.to_datetime(df['Time stamp'].str.strip(), format='%d/%m/%Y')

或者,您可以通過使用dayfirst=True參數來利用其解析各種格式的日期的功能

df['Time stamp'] = pd.to_datetime(df['Time stamp'], dayfirst=True)

例:

import pandas as pd
df = pd.DataFrame({'Time stamp': ['01/02/1988', '01/02/1988 ']})

pd.to_datetime(df['Time stamp'], format= '%d/%m/%Y')

ValueError:未轉換的數據仍然存在:

pd.to_datetime(df['Time stamp'].str.strip(), format='%d/%m/%Y')
#0   1988-02-01
#1   1988-02-01
#Name: Time stamp, dtype: datetime64[ns]

pd.to_datetime(df['Time stamp'], dayfirst=True)
#0   1988-02-01
#1   1988-02-01
#Name: Time stamp, dtype: datetime64[ns]

暫無
暫無

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

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