Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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_Python 3.x - Fatal编程技术网

如何在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