【发布时间】:2021-08-16 20:08:33
【问题描述】:
我正在使用以下代码将时间戳保存到磁盘,然后在以后查找自该时间以来经过了多少时间。我的问题是,当我使用 businesstimedelta 包时,它返回一个错误,即我的数据框没有时区。我假设它在保存到 csv 时会丢失:
import pandas as pd
import time
import datetime
import pytz
import businesstimedelta
from pytz import timezone
workday = businesstimedelta.WorkDayRule(start_time=datetime.time(9,30),end_time=datetime.time(16),working_days=[0, 1, 2, 3, 4])
timestamps = pd.DataFrame([datetime.datetime.now(timezone('America/New_York'))])
time.sleep(5)
timestamps.to_csv('timestamps.csv')
timestamps2 = pd.read_csv('timestamps.csv')
difference = workday.difference(timestamps2,datetime.datetime.now(timezone('America/New_York'))).hours
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-23-0e7502d68c65> in <module>
10 timestamps.to_csv('timestamps.csv')
11 timestamps2 = pd.read_csv('production temp/positions.csv')
---> 12 difference = workday.difference(timestamps2,datetime.datetime.now(timezone('America/New_York'))).hours
c:\users\g\appdata\local\programs\python\python38\lib\site-packages\businesstimedelta\rules\rule.py in difference(self, dt1, dt2)
29 def difference(self, dt1, dt2):
30 """Calculate the business time between two datetime objects."""
---> 31 dt1 = localize_unlocalized_dt(dt1)
32 dt2 = localize_unlocalized_dt(dt2)
33 start_dt, end_dt = sorted([dt1, dt2])
c:\users\g\appdata\local\programs\python\python38\lib\site-packages\businesstimedelta\businesstimedelta.py in localize_unlocalized_dt(dt)
8 https://docs.python.org/3/library/datetime.html#datetime.timezone
9 """
---> 10 if dt.tzinfo is not None and dt.tzinfo.utcoffset(dt) is not None:
11 return dt
12 return pytz.utc.localize(dt)
c:\users\g\appdata\local\programs\python\python38\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5463 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5464 return self[name]
-> 5465 return object.__getattribute__(self, name)
5466
5467 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute 'tzinfo'
【问题讨论】:
-
你能仔细看看你提供的代码sn-p吗?
timestamps2未使用 -
我已经编辑过了,我打错了。