将“转换为”;“数字”;日期时间python的字符串
我有一个数据框,其中日期列包含如下值: 20190709 20190710 20190708 让我们将此列命名为:date 我想将其转换为“2019-07-09” 尝试一些随机的事情,但似乎有点离谱。有人能帮我找到正确的配方吗?我猜这很简单,但我花了更多的时间去猜测 我最近试过一件事,不知道发生了什么将“转换为”;“数字”;日期时间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,
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)