我有一个带有Time(seconds)列的数据集,我想创建另一个包含完整日期和时间(yy / mm / dd h:m:s)的列,因此我在下面编写了此函数,但它花费的时间太长较大的数据集,我如何优化它?
专栏时间就是这样
0 0.0
1 0.2
2 0.4
3 0.6
4 0.8
5 1.0
6 1.2
7 1.4
8 1.6
9 1.8
10 2.0
11 2.2
12 2.4
13 2.6
14 2.8
15 3.0
16 3.2
17 3.4
18 3.6
19 3.8
20 4.0
def calcul_datetime(ds,h,m,s,Y,M,D):
for index,row in ds.iterrows():
if row.Time.is_integer()==True and row.Time!=0:
s=s+1
if s==60:
m=m+1
s=0
if m==60:
h=h+1
m=0
if h==24:
D=D+1
h=0
ds.iloc[index,9]="{Y}-{M}-{D} {heure}:{min}:{sec}".format(Y=Y, M=M, D=D ,heure=h,min=m,sec=s)
return ds ```
答案 0 :(得分:0)
datetime
模块具有执行时间和日期计算所需的几乎所有功能。
具体来说,datetime.datetime.fromtimestamp
方法将秒since the epoch转换为datetime.datetime
对象。然后,该对象具有方便的字符串表示方法:datetime.datetime.strftime
。
这是一个例子:
import datetime
some_arbitrary_time_value = 10000000
as_a_datetime = datetime.datetime.fromtimestamp(some_arbitrary_time_value)
as_a_string = as_a_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(as_a_string)