gpt4 book ai didi

python Pandas : How do I apply a function requiring an extended class (datetime)?

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:01 25 4
gpt4 key购买 nike

如何将 pandas apply 用于需要扩展标准类 (datetime) 的函数?

具体来说,我想从 https://gist.github.com/treyhunner/6218526 的优秀要点中导入 datetime_modulo .

此代码扩展了标准 datetime 类,以允许将模运算应用于 datetime 对象,例如

from datetime_modulo import datetime
from datetime import timedelta
d = datetime.now()
print d % timedelta(seconds=60)

现在我需要将此模运算应用到 pandas DataFrame 列/系列,例如

df['dates'] = pd.to_datetime(df.index.values)
df['datetime_mod'] = df['dates'].apply(lambda x: x % timedelta(minutes=15))

但是 pandas 无法检测到扩展的日期时间类(除非我只是错误地使用它):

TypeError: unsupported operand type(s) for %: 'Timestamp' and 'datetime.timedelta'

如何进行?

最佳答案

你可以试试,按照this suggestion ,将操作数显式转换为 datetime:

from datetime_modulo import datetime
from datetime import timedelta

df = pd.DataFrame({'Time': [pd.to_datetime('now')]})

def modulo(x):
dt = datetime(year=x.year,month=x.month,day=x.day, hour=x.hour, minute=x.minute, second=x.second)
return dt % timedelta(seconds=60)

df['Time'] = df['Time'].apply(modulo)

关于 python Pandas : How do I apply a function requiring an extended class (datetime)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50324848/

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