在python的pandas中,我使用pd.to_datetime(data.observation_time, format="%H:%M:%S")
来转换仅具有小时:分钟:秒的字符串列,然后结果始终包含诸如这样的计算机所猜测的年:月:日>
所以我的问题是如何只用小时:分钟:秒转换字符串列?该列不需要年,月和日
答案 0 :(得分:1)
您可以使用
df['time'] = df['dates'].dt.time
它将创建一个新列,其中仅包含从datetime列中提取的时间
答案 1 :(得分:1)
您是如此亲密。实际上,to_datetime
函数用于将string
值转换为datetime
对象。因此,您在to_datetime
中提供的格式是字符串的当前格式,即python应该如何读取字符串。这样,python知道日期实际上是date
而不是简单的string
。 (doc)
此转换完成后,您可以使用strftime
函数(doc)以自己的格式重新格式化日期。
这里有个例子:
# 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
答案 2 :(得分:0)
使用python datetime对象的时间功能:
data['Time'] = [val.time() for val in data['observation_time']]