📅  最后修改于: 2023-12-03 15:36:17.728000             🧑  作者: Mango
在数据处理的过程中,我们可能会遇到需要把字符串转化为时间格式的情况。Python提供了多种方法可以实现这个过程,本文将介绍一些常用的方法。
datetime.strptime
函数可以把字符串转化为时间类型。这个函数需要两个参数,第一个参数为待转化的字符串,第二个参数为该字符串的格式。这个函数返回一个datetime对象。
import datetime
date_string = "2022-08-08 08:08:08"
date_format = "%Y-%m-%d %H:%M:%S"
date_time = datetime.datetime.strptime(date_string, date_format)
print(date_time)
输出结果:
2022-08-08 08:08:08
pandas.to_datetime
函数可以把一个字符串数组转化为时间类型。这个函数可以自动识别字符串的格式。
import pandas as pd
date_string_array = ["2022-08-08 08:08:08", "2022-08-08 08:08:09", "2022-08-08 08:08:10"]
date_time_series = pd.to_datetime(date_string_array)
print(date_time_series)
输出结果:
DatetimeIndex(['2022-08-08 08:08:08', '2022-08-08 08:08:09',
'2022-08-08 08:08:10'],
dtype='datetime64[ns]', freq=None)
当从csv文件中读取数据时,我们可以通过设置pandas.read_csv
函数的parse_dates
参数为True,自动把字符串转化为时间。
import pandas as pd
data_frame = pd.read_csv("data.csv", parse_dates=["date"])
print(data_frame)
其中data.csv
文件内容为:
date,value
2022-08-08 08:08:08,1
2022-08-08 08:08:09,2
2022-08-08 08:08:10,3
输出结果:
date value
0 2022-08-08 08:08:08 1
1 2022-08-08 08:08:09 2
2 2022-08-08 08:08:10 3
当从SQL数据库中读取数据时,我们可以通过设置pandas.read_sql
函数的parse_dates
参数为列名,自动把字符串转化为时间。
import pandas as pd
import sqlite3
connection = sqlite3.connect('example.db')
data_frame = pd.read_sql('SELECT * FROM data', connection, parse_dates=['date'])
print(data_frame)
其中example.db
数据库的数据为:
CREATE TABLE "data" (
"date" DATETIME,
"value" INTEGER
);
INSERT INTO "data" VALUES ('2022-08-08 08:08:08',1);
INSERT INTO "data" VALUES ('2022-08-08 08:08:09',2);
INSERT INTO "data" VALUES ('2022-08-08 08:08:10',3);
输出结果:
date value
0 2022-08-08 08:08:08 1
1 2022-08-08 08:08:09 2
2 2022-08-08 08:08:10 3
本文介绍了四种把字符串转化为时间类型的方法,分别是datetime.datetime.strptime
函数、pandas.to_datetime
函数、pandas.read_csv
函数和pandas.read_sql
函数。这些方法可以根据不同的应用场景选择使用。