我的Dataframe中有一列(创建于),其时间戳如下所示:
Created AT 1) 2021-04-19T09:14:10.526Z 2) 2021-04-19T09:13:06.809Z 3) 2021-04-19T09:13:06.821Z
我只想从上面的列中提取时间。它应该显示:9:14:8等等,如何提取这个?
zf9nrax11#
df['time'] = pd.to_datetime(df['Created AT']) print(df['time'].dt.time)
在第一行,将datetime转换为对象并写入一个新列。第二,我们从datetime对象获取时间
sr4lhrrt2#
如果日期列是字符串,则需要将其转换为日期时间,然后获取时间的子字符串:
df = pd.DataFrame(data = {"Created At":["2021-04-19T09:14:10.526Z","2021-04-19T09:14:10.526Z"]}) df['Created At'] = pd.to_datetime(df['Created At']) df['Created At'] = df['Created At'].dt.time.astype(str).str[:8]
okxuctiv3#
转换为datetime并使用strftime完全按照您的喜好格式化。
data = ['2021-04-19T09:14:10.526Z', '2021-04-19T09:13:06.809Z', '2021-04-19T09:13:06.821Z'] df = pd.DataFrame(data=data, columns=['Created AT']) df['Created AT'] = pd.to_datetime(df['Created AT']).dt.strftime('%H:%M:%S') print(df) Created AT 0 09:14:10 1 09:13:06 2 09:13:06
lymgl2op4#
首先将列转换为datetime格式(如果尚未使用该格式):
df['Created AT'] = pd.to_datetime(df['Created AT'])
然后,添加新列 time 格式设置依据 .dt.strftime() 如下所示(如果您不需要nano second部分):
time
.dt.strftime()
df['time'] = df['Created AT'].dt.strftime('%H:%M:%S') print(df) Created AT time 0 2021-04-19 09:14:10.526000+00:00 09:14:10 1 2021-04-19 09:13:06.809000+00:00 09:13:06 2 2021-04-19 09:13:06.821000+00:00 09:13:06
6tdlim6h5#
我有办法解决你的问题。它可以有多个解决方案,但在这里我给出了一些解决方案这里使用时间,日期时间你可以使用
import time import datetime s = '2021-04-19T09:14:10.526Z' t = s.split('T')[1].split('.')[0] print(t)
为了得到它的时间戳,再做一行
print(datetime.datetime.strptime(t,"%H:%M:%S"))
5条答案
按热度按时间zf9nrax11#
在第一行,将datetime转换为对象并写入一个新列。
第二,我们从datetime对象获取时间
sr4lhrrt2#
如果日期列是字符串,则需要将其转换为日期时间,然后获取时间的子字符串:
okxuctiv3#
转换为datetime并使用strftime完全按照您的喜好格式化。
lymgl2op4#
首先将列转换为datetime格式(如果尚未使用该格式):
然后,添加新列
time
格式设置依据.dt.strftime()
如下所示(如果您不需要nano second部分):6tdlim6h5#
我有办法解决你的问题。它可以有多个解决方案,但在这里我给出了一些解决方案这里使用时间,日期时间
你可以使用
为了得到它的时间戳,再做一行