2

大约两周前,我开始使用 pandas 库。学习新功能。对于以下问题,我将不胜感激。

我有一列包含混合格式的日期。这些是目前的 2 种格式

  1. mm/dd/yyyy
  2. 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  

我正在努力将这些转换为通用格式。我尝试使用熊猫的'to_datetime'。这没用。我也不确定在这种情况下使用正则表达式会有什么帮助。

另一条信息。日期按排序顺序排列。可以使用信息完成某事吗?

编辑1:

我知道,如果我们单独查看它们,则无法区分 2016 年 6 月 4 日和 2016 年 5 月 6 日。但是,我希望日期按升序排列并且实际数据集分布超过一年的事实,会有一种方法来理解它。鉴于日期按升序排列,是否有人知道可以理解格式的函数?

EDIT2:2 个月的样本:- 2016 年 4 月和 5 月。请注意,没有模式。因此,请不要根据以下数据的模式提出任何解决方案。

4/1/2016 4/1/2016 4/3/2016 4/3/2016 3/4/2016 4/4/2016 4/4/2016 4/5/2016 4/5/2016 4/7/2016 2016 年 4 月 7 日 2016 年 4 月 8 日 2016 年 4 月 8 日 2016 年 4 月 14 日 2016 年 4 月 16 日 2016 年 6 月 4 日 2016 年 7 月 4 日 8/4/2016 11/4/2016 11/4/2016 11/4/2016 11/4/2016 11/4/2016 12/4/2016 12/4/2016 12/4/2016 13/4/2016 13/4/2016 13/4/2016 13/4/2016 13/4/2016 14/04/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 20/4/2016 21/4/2016 21/4/2016 21/4/2016 22/4/2016 23/4/2016 23/4/2016 25/4/2016 25/4/2016 26/4/2016 26/4/2016 26/4/2016 26/4/2016 26/4/2016 26/4/2016 29/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 5/4/2016 6/5/2016 6/5/2016 7/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/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/17/2016 5/17/2016 5/18/2016 5/18/2016 5/19/2016 5/19/2016 5/20 /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/26/2016 5/27/2016 5/27/2016 5/27 /2016 5/27/2016 5/27/2016 5/27/2016 5/27/2016 5/28/2016 5/30/2016 5/30/2016

4

1 回答 1

1

真正的问题是您的数据集中有不明确的日期(您是否将其解析为 mm/dd/yyyy 或 dd/mm/yyyy,如果可能的话??(我来过这里,我们决定只选择什么)大多数似乎是;本质上数据集被泄露了......我们不得不这样对待它)。


如果它是一个系列,那么用它来打它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]
于 2016-05-31T06:27:25.240 回答