[英]Value error when converting different date formats to one single format
您好,我的數據集上有一個日期列,如下所示
import pandas as pd
# initialize list of lists
data = [['2020-11-05 00:00:00'], ['4/24/20'],['5/26/19'], ['2019-08-12 00:00:00']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['date'])
# print dataframe.
df
現在我想將所有日期格式轉換為dd-mm-yyyy 的單一格式,我已經嘗試使用此代碼
df['date']= df['date'].astype(str)
import datetime
def guess_date(string):
for fmt in ["%m/%d/%Y", "%d-%m-%Y", "%Y-%m-%d"]:
try:
return datetime.datetime.strptime(string, fmt).date()
except ValueError:
continue
raise ValueError(string)
for sample in df['date']:
d = guess_date(sample)
print(d.strftime("%d-%m-%y"))
當我嘗試運行它時出現此錯誤ValueError: 2020-11-05 00:00:00 。 請有人幫忙嗎?
我希望所有日期格式都是dd-mm-yyyy
您應該在格式數組中添加兩種格式。 修改后的代碼如下。
import pandas as pd
import datetime
data = [['2020-11-05 00:00:00'], ['4/24/20'],['5/26/19'], ['2019-08-12 00:00:00']]
df = pd.DataFrame(data, columns = ['date'])
df['date']= df['date'].astype(str)
print(df)
def guess_date(string):
# added "%m/%d/%y" and "%Y-%m-%d %H:%M:%S"
for fmt in ["%m/%d/%Y", "%m/%d/%y", "%d-%m-%Y", "%Y-%m-%d", "%Y-%m-%d %H:%M:%S"]:
try:
return datetime.datetime.strptime(string, fmt).date()
except ValueError:
continue
raise ValueError(string)
for sample in df['date']:
d = guess_date(sample)
print(d.strftime("%d-%m-%y"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.