Python 蟒蛇和熊猫-将2020年6月23日星期二转换为yyyy-mn-dd

Python 蟒蛇和熊猫-将2020年6月23日星期二转换为yyyy-mn-dd,python,pandas,datetime,Python,Pandas,Datetime,我有一个Pandas数据框(来自MongoDB数据库),其中有一个problemDate,并使用以下格式的字符串存档: 'Tue Jun 23 2020 13:40:56 GMT+0000 (Coordinated Universal Time)' 为了进一步处理,我需要这是在yyyy-mm-dd格式。我尝试使用DateTime,但出现错误: yes_no_db['problemDate'] = pd.to_datetime(yes_no_db['problemDate']) 给我这个错误

我有一个Pandas数据框(来自MongoDB数据库),其中有一个problemDate,并使用以下格式的字符串存档:

'Tue Jun 23 2020 13:40:56 GMT+0000 (Coordinated Universal Time)'
为了进一步处理,我需要这是在yyyy-mm-dd格式。我尝试使用DateTime,但出现错误:

yes_no_db['problemDate'] = pd.to_datetime(yes_no_db['problemDate']) 
给我这个错误:

ValueError: ('Unknown string format:', 'Tue Jun 23 2020 13:40:56 GMT+0000 (Coordinated Universal Time)')
想知道我能做些什么来转换日期吗


谢谢

您的数据包含的信息超过了解析日期所需的信息。有些是熊猫无法理解的,例如协调世界时。让我们尝试修剪一点,然后转换:

s = pd.to_datetime(df.problemDate.str.extract('^\w* ([\w]+ \d+ \d+)')[0])
另一个选项是只剪辑
(…)
部分:

s = pd.to_datetime(df.problemDate.str.extract('^(.+) \(')[0])
输出:

0   2020-06-23
Name: 0, dtype: datetime64[ns]
在此基础上,如果需要字符串格式,可以执行以下操作:

s.dt.strftime('%Y-%m-%d')
你会得到:

0    2020-06-23
Name: 0, dtype: object

它看起来相同,但实际上有不同的数据类型(这次是字符串)

它不能转换为这种原始格式。在应用于它的\u datetime函数之前,需要对其进行切片,如下面的示例所示

import pandas as pd

values = {'dates':  ['02-Sep-2019','13-Sep-2019','21-Sep-2019'],
      'status': ['Opened','Opened','Closed']
      }

df = pd.DataFrame(values, columns = ['dates','status'])

df['dates'] = pd.to_datetime(df['dates'], format='%d-%m-%Y')#format='%Y%m%d%H%M%S for time

print (df)
print (df.dtypes)

您需要将数据格式化为某种特定的类型,通过这种类型,您可以将格式作为一个附件传递给函数,以获取更多信息访问此链接

添加到Chester,您将必须操纵字符串,以便从上述链接获得可用的格式。首先,您可能需要删除“(协调世界时)”真棒,这正是我需要的-谢谢!