我有一段时间表示为自1990年1月1日以来的秒数,我需要转换为DateTime。我可以弄清楚如何为常量(例如,添加10秒),但不是系列或列。
我最终尝试编写一个循环来一次执行这一行。 (可能不是正确的方式,我是python的新手)。
此代码适用于单行:
def addSecs(secs):
fulldate = datetime(1990,1,1)
fulldate = fulldate + timedelta(seconds=secs)
return fulldate
b= addSecs(intag112['outTags_1_2'].iloc[1])
print(b)
2018-06-20 01:05:13
有谁知道在数据框中为整列执行此操作的简单方法?
我试过这个:
for i in range(len(intag112)):
intag112['TransactionTime'].iloc[i]=addSecs(intag112['outTags_1_2'].iloc[i])
但它错了。
如果你想在DataFrame
中对列(系列)做一些事情,你可以使用apply
方法,例如:
import datetime
# New column 'datetime' is created from old 'seconds'
df['datetime'] = df['seconds'].apply(lambda x: datetime.datetime.fromtimestamp(x))
查看documentation了解更多示例。总体建议 - 尝试根据值的向量(或序列)进行思考。大熊猫中的大多数操作都可以使用整个系列甚至数据帧来完成。