Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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的字符串_Python_String_Datetime - Fatal编程技术网

将“转换为”;“数字”;日期时间python的字符串

将“转换为”;“数字”;日期时间python的字符串,python,string,datetime,Python,String,Datetime,我有一个数据框,其中日期列包含如下值: 20190709 20190710 20190708 让我们将此列命名为:date 我想将其转换为“2019-07-09” 尝试一些随机的事情,但似乎有点离谱。有人能帮我找到正确的配方吗?我猜这很简单,但我花了更多的时间去猜测 我最近试过一件事,不知道发生了什么 df['date2'] = datetime.strptime(df['date'].astype(str),"%Y-%m-%d") 正在获取的错误消息 “strtime()参数1必须是str,

我有一个数据框,其中日期列包含如下值: 20190709 20190710 20190708

让我们将此列命名为:date

我想将其转换为“2019-07-09”

尝试一些随机的事情,但似乎有点离谱。有人能帮我找到正确的配方吗?我猜这很简单,但我花了更多的时间去猜测

我最近试过一件事,不知道发生了什么

df['date2'] = datetime.strptime(df['date'].astype(str),"%Y-%m-%d")
正在获取的错误消息
“strtime()参数1必须是str,而不是Series”

这比您想象的要简单,Pandas有一个非常好的日期自动解析器,因此它可以在不预先解析字符串的情况下获得格式。系列的工作示例:

a = ['20190709', '20190710']
a = pd.Series(a)
df['date2'] = pd.to_datetime(a)
在您的情况下,这应该可以:

df['date2'] = pd.to_datetime(df['date'])

这比你想象的要容易,Pandas有一个非常好的日期自动解析器,因此它可以在不预先解析字符串的情况下获得格式。系列的工作示例:

a = ['20190709', '20190710']
a = pd.Series(a)
df['date2'] = pd.to_datetime(a)
在您的情况下,这应该可以:

df['date2'] = pd.to_datetime(df['date'])

如果日期中有一致的数字(看起来像),则可以对字符串进行切片:

>>> s = '20190708'
>>> datestr = '-'.join([s[:4], s[4:6], s[6:] ])
>>> datetime.strptime(datestr,"%Y-%m-%d")
datetime.datetime(2019, 7, 8, 0, 0)

如果日期中有一致的数字(看起来像),则可以对字符串进行切片:

>>> s = '20190708'
>>> datestr = '-'.join([s[:4], s[4:6], s[6:] ])
>>> datetime.strptime(datestr,"%Y-%m-%d")
datetime.datetime(2019, 7, 8, 0, 0)