Pandas日期时间格式不一致

llmtgqce  于 2023-01-01  发布在  其他
关注(0)|答案(1)|浏览(126)

我开始使用Pandas图书馆大约两周前。学习新的功能。我将感谢帮助以下问题。
我有一个日期为混合格式的列。这是两种格式
1.第一个月

  1. dd/mm/yyyy
    数据集摘录:-
Dates  
6/5/2016  
7/5/2016  
7/5/2016  
7/5/2016  
9/5/2016  
9/5/2016  
9/5/2016  
9/5/2016  
5/13/2016  
5/14/2016  
5/14/2016

我很难把这些转换成一个通用的格式。我试过使用Pandas的“to_datetime”。它不起作用。我也不确定在这种情况下使用正则表达式会有什么帮助。
另一条信息。日期是按顺序排列的。使用信息可以做些什么吗?。

编辑1:

我明白,如果我们单独看它们,是不可能区分6/4/2016和5/6/2016的。然而,我希望事实上日期是按升序排列的,实际的数据集分布在一年多的时间里,一定有办法弄明白的。有没有人知道一个函数,可以使意义的格式给定的事实,日期是升序?
编辑2:2个月的样本:-2016年4月和5月。请注意,没有模式。因此,请不要根据以下数据的模式提出任何解决方案。
2016年4月1日2016年4月1日2016年4月3日2016年4月3日2016年3月4日2016年4月4日2016年4月5日2016年4月5日2016年4月7日2016年4月7日2016年4月8日2016年4月8日2016年4月14日2016年4月16日2016年6月4日2016年8月4日2016年11月4日2016年11月4日2016年11月4日2016年11月4日2016年11月4日2016年12月4日2016年12月4日2016年13月4日2016年13月4日2016年13月4日2016年13月4日2016年14月4日2016年15月4日2016年16月4日2016年16月4日2016年18月4日2016年18月4日2016年19月4日2016年19月4日2016年20月4日2016年21月4日2016年21月4日2016年22月4日2016年23月4日2016年23月4日25月4日2016年25月4日2016年26月4日2016年26月4日2016年26月4日2016年26月4日2016年26月4日2016年29月4日2016年29月4日2016年30月4日2016年2月5日2016年2月5日2016年3月5日2016年3月5日2016年3月5日2016年3月5日2016年4月5日2016年5月4日2016年5月4日2016年6月5日2016年6月5日2016年7月5日2016年7月5日2016年9月5日2016年9月5日2016年9月5日2016年9月5日2016年10月5日2016年10月5日2016年11月5日2016年11月5日2016年12月5日2016年5月13日2016年5月14日2016年5月15日2016年5月16日2016年5月16日2016年5月16日2016年5月16日2016年5月16日2016年5月16日2016年5月16日2016年5月16日2016年5月17日2016年5月17日2016年5月18日2016年5月18日2016年5月19日2016年5月20日2016年5月20日2016年5月20日2016年5月20日2016年5月21日2016年5月23日2016年5月23日2016年5月23日2016年5月23日2016年5月23日2016年5月23日2016年5月24日2016年5月24日2016年5月25日2016年5月26日2016年5月26日2016年5月27日2016年5月27日2016年5月27日2016年5月27日2016年5月27日2016年5月27日2016年5月28日2016年5月30日

g6ll5ycj

g6ll5ycj1#

真实的的问题是数据集中有不明确的日期(如果可以的话,您会将其解析为mm/dd/yyyy还是dd/mm/yyyy?)(我一直在这里,我们决定只选择看起来占大多数的日期;从本质上说,数据集已被破坏......我们不得不将其视为此类数据)。
如果它是一个Series,那么使用pd.to_datetime进行处理似乎可以:

In [11]: s = pd.Series(['6/5/2016', '7/5/2016', '7/5/2016', '7/5/2016', '9/5/2016', '9/5/2016', '9/5/2016', '9/5/2016', '5/13/2016', '5/14/2016', '5/14/2016'])

In [12]: pd.to_datetime(s)
Out[12]:
0    2016-06-05
1    2016-07-05
2    2016-07-05
3    2016-07-05
4    2016-09-05
5    2016-09-05
6    2016-09-05
7    2016-09-05
8    2016-05-13
9    2016-05-14
10   2016-05-14
Name: 0, dtype: datetime64[ns]

注意:如果您有一个一致的格式,您可以显式地传递它:

In [13]: pd.to_datetime(s, format="%m/%d/%Y")
Out[13]:
0    2016-06-05
1    2016-07-05
2    2016-07-05
3    2016-07-05
4    2016-09-05
5    2016-09-05
6    2016-09-05
7    2016-09-05
8    2016-05-13
9    2016-05-14
10   2016-05-14
Name: 0, dtype: datetime64[ns]

相关问题