Python和Pandas将2020年6月23日星期二转换为YYYYMMDD

2024-09-28 03:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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)')

想知道我能做些什么来转换日期吗

谢谢


Tags: 数据nopandasdbtimemongodb格式错误
2条回答

您的数据包含的信息超过了分析日期所需的信息。有些是熊猫无法理解的,例如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

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

它不能被转换成这种原始格式,你需要先对它进行切片,然后才能像下面的例子那样应用于它的_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)

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

相关问题 更多 >

    热门问题