如何处理Python中只包含小时、分钟和秒的字符串列
在python的pandas中,我使用如何处理Python中只包含小时、分钟和秒的字符串列,python,pandas,datetime,Python,Pandas,Datetime,在python的pandas中,我使用pd.to_datetime(data.observation_time,format=“%H:%M:%s”)转换只有小时:分钟:秒的字符串列,然后结果总是包含计算机猜测的年:月:日,如下所示 所以我这里的问题是如何转换只有小时:分钟:秒的字符串列?我不需要该列的年、月和日使用pythons datetime对象时间功能: data['Time'] = [val.time() for val in data['observation_time']] 你可以
pd.to_datetime(data.observation_time,format=“%H:%M:%s”)
转换只有小时:分钟:秒的字符串列,然后结果总是包含计算机猜测的年:月:日,如下所示
所以我这里的问题是如何转换只有小时:分钟:秒的字符串列?我不需要该列的年、月和日使用pythons datetime对象时间功能:
data['Time'] = [val.time() for val in data['observation_time']]
你可以用
df['time'] = df['dates'].dt.time
它将创建一个新列,其中只有从datetime列中提取的时间您太接近了。实际上,
to_datetime
函数用于将string
值转换为datetime
对象。因此,您在to_datetime
中提供的格式是字符串的当前格式,即python应该如何读取字符串。像这样,python知道日期实际上是一个日期
,而不是一个简单的字符串
完成此转换后,您可以使用strftime
功能以自己的格式重新格式化日期
这里有一个例子:
# Import module
import pandas as pd
# Build dataframe
df = pd.DataFrame({"Date": ["1900-01-01 01:01:00",
"1900-01-01 02:01:00",
"1900-01-01 03:31:00",
"1900-01-01 04:01:04",
"1900-01-01 11:01:00"]})
print(df)
# Date
# 0 1900-01-01 01:01:00
# 1 1900-01-01 02:01:00
# 2 1900-01-01 03:31:00
# 3 1900-01-01 04:01:04
# 4 1900-01-01 11:01:00
# Convert the date column (string type) to datetime type
df["Date"] = pd.to_datetime(df["Date"], format="%Y-%m-%d %H:%M:%S")
print(df)
# Date
# 0 1900-01-01 01:01:00
# 1 1900-01-01 02:01:00
# 2 1900-01-01 03:31:00
# 3 1900-01-01 04:01:04
# 4 1900-01-01 11:01:00
# Reformat the date column. Here Hours:minutes:seconds
df["Date"] = df.Date.dt.strftime("%H:%M:%S")
print(df)
# Date
# 0 01:01:00
# 1 02:01:00
# 2 03:31:00
# 3 04:01:04
# 4 11:01:00
我还想查看
pd.to_timedelta