Python 使用pandas将日期列转换为标准格式
如何使用pandas将日期列转换为标准格式,即12-08-1996。我掌握的数据是: 我尝试了一些在线搜索的方法,但没有找到一种可以检测格式并使其标准化的方法 以下是我编写的代码:Python 使用pandas将日期列转换为标准格式,python,pandas,datetime,Python,Pandas,Datetime,如何使用pandas将日期列转换为标准格式,即12-08-1996。我掌握的数据是: 我尝试了一些在线搜索的方法,但没有找到一种可以检测格式并使其标准化的方法 以下是我编写的代码: df = pd.read_excel(r'date cleanup.xlsx') df.head(10) df.DOB = pd.to_datetime(df.DOB) #Error is in this line 我得到的错误是: ValueError:('Unknown string format:','20
df = pd.read_excel(r'date cleanup.xlsx')
df.head(10)
df.DOB = pd.to_datetime(df.DOB) #Error is in this line
我得到的错误是:
ValueError:('Unknown string format:','20\\december\\1992')
更新:
使用
工作正常,但有一个值20\\december\\1992,它给出了上面突出显示的错误。因此,我不熟悉数据中的所有格式,这就是为什么我在寻找一种能够自动检测数据并将其转换为标准格式的技术。您可以使用库:
输出
| | DOB | date |
|---|--------------------|------------|
| 0 | 12 aug 1996 | 1996-08-12 |
| 1 | 24th december 2006 | 2006-12-24 |
| 2 | 20\ december \2007 | 2020-12-07 |
编辑
注意,有一个设置可用于处理异常:
您还可以通过设置STRICT_parsing来完全忽略解析不完整的日期
从dateutil导入解析器
,parser.parse('17 Jun')
给出datetime.datetime(2019,6,17,0,0)
,如果它不起作用,请提供要创建的代码df@anky_91这很好,但是有一些字符串出现了错误,比如20\\december\\1992
。我得到了一个错误:TypeError:输入类型必须是str或unicode
df.dtypes给出了什么?试试pd.read\u excel(r'date cleanup.xlsx',converters={'DOB':str})
导入excel文件时,df.dtypes
显示DOB的类型是DOB对象
并键入pd.read\u excel(r'date cleanup.xlsx',converters={'DOB':str})
给出了相同的错误。将dateparser.parse(x)
替换为dateparser.parse(str(x))
?DOB
的格式有问题,但无法确定没有该文件会发生什么
import dateparser
df = pd.DataFrame(["12 aug 1996", "24th december 2006", "20\\ december \\2007"], columns = ['DOB'])
df['date'] = df['DOB'].apply(lambda x :dateparser.parse(x))
| | DOB | date |
|---|--------------------|------------|
| 0 | 12 aug 1996 | 1996-08-12 |
| 1 | 24th december 2006 | 2006-12-24 |
| 2 | 20\ december \2007 | 2020-12-07 |
df['date'] = df['DOB'].apply(lambda x : dateparser.parse(x, settings={'STRICT_PARSING': True}) if len(str(x))>6 else None)