ef0aebc7 by 周伟奇

fix / -> 7

1 parent eafa702d
...@@ -2,6 +2,7 @@ import re ...@@ -2,6 +2,7 @@ import re
2 import random 2 import random
3 import locale 3 import locale
4 import numpy as np 4 import numpy as np
5 from datetime import datetime
5 from pandas._libs import tslib 6 from pandas._libs import tslib
6 from pandas._libs.tslibs.nattype import NaTType 7 from pandas._libs.tslibs.nattype import NaTType
7 from pandas.core.indexes.datetimes import DatetimeIndex 8 from pandas.core.indexes.datetimes import DatetimeIndex
...@@ -255,7 +256,7 @@ class BSWorkbook(Workbook): ...@@ -255,7 +256,7 @@ class BSWorkbook(Workbook):
255 date_col = date_col + 1 256 date_col = date_col + 1
256 for date_tuple_src in ws.iter_cols(min_col=date_col, max_col=date_col, min_row=min_row, values_only=True): 257 for date_tuple_src in ws.iter_cols(min_col=date_col, max_col=date_col, min_row=min_row, values_only=True):
257 date_tuple = [date[:10] if isinstance(date, str) else date for date in date_tuple_src] 258 date_tuple = [date[:10] if isinstance(date, str) else date for date in date_tuple_src]
258 dt_array, tz_parsed = tslib.array_to_datetime( 259 dt_array, _ = tslib.array_to_datetime(
259 np.array(date_tuple, copy=False, dtype=np.object_), 260 np.array(date_tuple, copy=False, dtype=np.object_),
260 errors="coerce", 261 errors="coerce",
261 utc=False, 262 utc=False,
...@@ -265,6 +266,22 @@ class BSWorkbook(Workbook): ...@@ -265,6 +266,22 @@ class BSWorkbook(Workbook):
265 ) 266 )
266 dti = DatetimeIndex(dt_array, tz=None, name=None) 267 dti = DatetimeIndex(dt_array, tz=None, name=None)
267 268
269 rebuid = False
270 for idx, d in enumerate(dti):
271 try:
272 if isinstance(d, NaTType) and isinstance(date_tuple[idx], str):
273 match_obj = re.match(r'(\d{4})[7/](\d{2})[7/](\d{2})', date_tuple[idx])
274 if match_obj:
275 dt_array[idx] = np.datetime64(datetime(int(match_obj.group(1)),
276 int(match_obj.group(2)),
277 int(match_obj.group(3))))
278 rebuid = True
279 except Exception as e:
280 continue
281
282 if rebuid:
283 dti = DatetimeIndex(dt_array, tz=None, name=None)
284
268 month_list, idx_list = self.month_split(dti, date_list, date_statistics) 285 month_list, idx_list = self.month_split(dti, date_list, date_statistics)
269 286
270 if len(month_list) == 0: 287 if len(month_list) == 0:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!