gpt4 book ai didi

python - 如何在 python 中将一列整数转换为标准小时时间?

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:22 24 4
gpt4 key购买 nike

我有一个这样的数据框:

BuyTime        ID      SellTime
94650 1 94651
94717 1 94817
120458 2 114119

买入时间和卖出时间类型是整数,但我想将它们转换为标准时间日期。我已经用过了

 quote['SellTime'] = pd.to_datetime(quote['SellTime'], unit = 's')

但是它给出了一个像 1970-01-01 这样的开始年份给不需要的时间。我的数据应该是这样的:

BuyTime     Id     SellTime
09:46:50 1 09:46:51
09:47:17 1 09:48:17
12:04:58 2 11:41:19

编辑:在我的数据大小方面也使用此功能效率不高:

 def format_time(value):
t2 = str(value)
if len(t2) == 5:
return "0%s:%s:%s" % (t2[0], t2[1:3], t2[3:5])
return "%s:%s:%s" % (t2[0:2], t2[2:4], t2[4:6])

最佳答案

如果需要输出为 strings zfill,我想你需要和 str[] 按位置选择:

t1 = quote['BuyTime'].astype(str).str.zfill(6)
t2 = quote['SellTime'].astype(str).str.zfill(6)
quote['BuyTime'] = t1.str[0:2] + ':' + t1.str[2:4] + ':' + t1.str[4:6]
quote['SellTime'] = t2.str[0:2] + ':' + t2.str[2:4] + ':' + t2.str[4:6]
print (quote)
BuyTime ID SellTime
0 09:46:50 1 09:46:51
1 09:47:17 1 09:48:17
2 12:04:58 2 11:41:19

或者如果需要 python 时间 添加 0 by zfill , 转换为 datetime 并提取 time小号:

t1 = quote['BuyTime'].astype(str).str.zfill(6)
t2 = quote['SellTime'].astype(str).str.zfill(6)
quote['BuyTime'] = pd.to_datetime(t1, format='%H%M%S').dt.time
quote['SellTime'] = pd.to_datetime(t2, format='%H%M%S').dt.time
print (quote)
BuyTime ID SellTime
0 09:46:50 1 09:46:51
1 09:47:17 1 09:48:17
2 12:04:58 2 11:41:19

string 输出的替代方案是 strftime :

quote['BuyTime'] = pd.to_datetime(t1, format='%H%M%S').dt.strftime('%H:%M:%S')
quote['SellTime'] = pd.to_datetime(t2, format='%H%M%S').dt.strftime('%H:%M:%S')
print (quote)
BuyTime ID SellTime
0 09:46:50 1 09:46:51
1 09:47:17 1 09:48:17
2 12:04:58 2 11:41:19

关于python - 如何在 python 中将一列整数转换为标准小时时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47795361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com