Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在panda中解析和strTime不转换我的日期_Python_Pandas_Datetime_Parsing - Fatal编程技术网

Python 在panda中解析和strTime不转换我的日期

Python 在panda中解析和strTime不转换我的日期,python,pandas,datetime,parsing,Python,Pandas,Datetime,Parsing,我试图使数据框中的日期成为标准的时间戳 我有一个如下所示的数据帧: 747 August 1,2019 587 12-06-2019 347 04-09-2019 709 July 9,2019 135 20/2/2019 解析器似乎什么也不做 df['registration\u date']=df['registration\u date'].astype(str) 对于df中的日期[‘注册日期’

我试图使数据框中的日期成为标准的
时间戳

我有一个如下所示的数据帧:

747        August 1,2019
587           12-06-2019
347           04-09-2019
709          July 9,2019
135            20/2/2019
解析器似乎什么也不做

df['registration\u date']=df['registration\u date'].astype(str)
对于df中的日期[‘注册日期’]:
尝试:
日期=解析(日期)
除值错误外:
通过
变体不起作用:

date=parse(date,fuzzy=True)
日期=解析(日期,带标记的模糊值=真)
日期=解析(日期,带有标记的模糊\u=False)
而且
strtime
也不起作用:

用于df中的日期['registration_date']:
尝试:
date=datetime.strtime(日期,'%B%d,%Y')
除值错误外:
通过

我做错了什么?

运行
df.registration\u date=pd.to\u datetime(df.registration\u date)

幸运的是,
pd.to\u datetime
足够聪明,可以识别日期格式 在每种情况下,都要正确地转换它(至少对于示例数据)

关于类型的注意事项:

如果然后运行
df.info()
,您将看到此列的类型 截至日期时间64[ns]。但是,如果您读取一个个人值,例如。 从第一行开始:
df.loc[0,‘注册日期’]
您将获得 时间戳('2019-08-01 00:00:00'),因此单个值
只是时间戳类型。

当你说在每种情况下,你的意思是,尽管有非同质的日期格式,这仍然有效吗?我在提供的示例数据上运行了我的代码,得到了正确的结果。因此,这个方法看起来像是针对特定的大小写单独检查数据格式,然后根据当前格式转换源字符串。太棒了!我必须记住,它可以做到这一点。在上面的示例中使用pd.to_datetime会将日期(如2019年2月20日(第一天))转换为2019-02-20,这可能不是预期的行为,即使to_datetime对内置智能也有一些限制。事实上,应该有一些基本原则,例如关于日/月/年部分的顺序。
parse()
函数从何而来?您首先从何处获取数据,可以在程序中更早地格式化日期。