如何在Python中将字符串转换为时间元组
假设我有一个数据帧:如何在Python中将字符串转换为时间元组,python,python-3.x,Python,Python 3.x,假设我有一个数据帧: df = {'date':['20170101', '20170102', '20170103', '20170104']} 我想将'20170101'转换为'2017-01-01 00:00:00' 如何实现它?如果您知道字符串是如何构建的(即YYYYMMDD),您可以简单地使用以下方法: def f(s): return '{}-{}-{} 00:00:00'.format(s[:4],s[4:6],s[6:]) s = '20170101' f(s) Ou
df = {'date':['20170101', '20170102', '20170103', '20170104']}
我想将'20170101'
转换为'2017-01-01 00:00:00'
如何实现它?如果您知道字符串是如何构建的(即
YYYYMMDD
),您可以简单地使用以下方法:
def f(s):
return '{}-{}-{} 00:00:00'.format(s[:4],s[4:6],s[6:])
s = '20170101'
f(s)
Out[7]: '2017-01-01 00:00:00'
您可以将日期时间字符串转换为
datetime
对象。然后获得您想要的任何格式:
from datetime import datetime
datetime.strptime("20170103", "%Y%m%d").strftime("%Y-%m-%d %H:%M:%S")
输出:
"2017-01-03 00:00:00"
如果您有一个
pandas.DataFrame
,您可以使用:
代码:
测试代码:
结果:
通过此链接,您将得到答案
pd.to_datetime(df['date'], format='%Y%m%d')
df = pd.DataFrame({'date':['20170101', '20170102', '20170103', '20170104']})
df['date2'] = df['date'].apply(lambda d: dt.datetime.strptime(d, '%Y%m%d'))
df['date3'] = pd.to_datetime(df['date'], format='%Y%m%d')
print(df)
date date2 date3
0 20170101 2017-01-01 2017-01-01
1 20170102 2017-01-02 2017-01-02
2 20170103 2017-01-03 2017-01-03
3 20170104 2017-01-04 2017-01-04