@@ -849,6 +849,30 @@ class NaTType(_NaT):
849
849
def is_leap_year (self ):
850
850
return False
851
851
852
+ @property
853
+ def is_month_start (self ):
854
+ return False
855
+
856
+ @property
857
+ def is_quarter_start (self ):
858
+ return False
859
+
860
+ @property
861
+ def is_year_start (self ):
862
+ return False
863
+
864
+ @property
865
+ def is_month_end (self ):
866
+ return False
867
+
868
+ @property
869
+ def is_quarter_end (self ):
870
+ return False
871
+
872
+ @property
873
+ def is_year_end (self ):
874
+ return False
875
+
852
876
def __rdiv__ (self , other ):
853
877
return _nat_rdivide_op(self , other)
854
878
@@ -3799,8 +3823,9 @@ def array_strptime(ndarray[object] values, object fmt,
3799
3823
# these by definition return np.nan
3800
3824
fields = [' year' , ' quarter' , ' month' , ' day' , ' hour' ,
3801
3825
' minute' , ' second' , ' millisecond' , ' microsecond' , ' nanosecond' ,
3802
- ' week' , ' dayofyear' , ' days_in_month' , ' daysinmonth' , ' dayofweek' ,
3803
- ' weekday_name' ]
3826
+ ' week' , ' dayofyear' , ' weekofyear' , ' days_in_month' , ' daysinmonth' ,
3827
+ ' dayofweek' , ' weekday_name' , ' days' , ' seconds' , ' microseconds' ,
3828
+ ' nanoseconds' , ' qyear' , ' quarter' ]
3804
3829
for field in fields:
3805
3830
prop = property(fget = lambda self : np.nan)
3806
3831
setattr (NaTType, field, prop)
@@ -4810,7 +4835,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4810
4835
if field == ' is_month_start' :
4811
4836
if is_business:
4812
4837
for i in range (count):
4813
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4838
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4814
4839
4815
4840
pandas_datetime_to_datetimestruct(
4816
4841
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4823,7 +4848,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4823
4848
return out.view(bool )
4824
4849
else :
4825
4850
for i in range (count):
4826
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4851
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4827
4852
4828
4853
pandas_datetime_to_datetimestruct(
4829
4854
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4836,7 +4861,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4836
4861
elif field == ' is_month_end' :
4837
4862
if is_business:
4838
4863
for i in range (count):
4839
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4864
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4840
4865
4841
4866
pandas_datetime_to_datetimestruct(
4842
4867
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4854,7 +4879,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4854
4879
return out.view(bool )
4855
4880
else :
4856
4881
for i in range (count):
4857
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4882
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4858
4883
4859
4884
pandas_datetime_to_datetimestruct(
4860
4885
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4871,7 +4896,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4871
4896
elif field == ' is_quarter_start' :
4872
4897
if is_business:
4873
4898
for i in range (count):
4874
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4899
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4875
4900
4876
4901
pandas_datetime_to_datetimestruct(
4877
4902
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4885,7 +4910,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4885
4910
return out.view(bool )
4886
4911
else :
4887
4912
for i in range (count):
4888
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4913
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4889
4914
4890
4915
pandas_datetime_to_datetimestruct(
4891
4916
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4898,7 +4923,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4898
4923
elif field == ' is_quarter_end' :
4899
4924
if is_business:
4900
4925
for i in range (count):
4901
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4926
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4902
4927
4903
4928
pandas_datetime_to_datetimestruct(
4904
4929
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4917,7 +4942,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4917
4942
return out.view(bool )
4918
4943
else :
4919
4944
for i in range (count):
4920
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4945
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4921
4946
4922
4947
pandas_datetime_to_datetimestruct(
4923
4948
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4934,7 +4959,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4934
4959
elif field == ' is_year_start' :
4935
4960
if is_business:
4936
4961
for i in range (count):
4937
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4962
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4938
4963
4939
4964
pandas_datetime_to_datetimestruct(
4940
4965
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4948,7 +4973,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4948
4973
return out.view(bool )
4949
4974
else :
4950
4975
for i in range (count):
4951
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4976
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4952
4977
4953
4978
pandas_datetime_to_datetimestruct(
4954
4979
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4961,7 +4986,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4961
4986
elif field == ' is_year_end' :
4962
4987
if is_business:
4963
4988
for i in range (count):
4964
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4989
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4965
4990
4966
4991
pandas_datetime_to_datetimestruct(
4967
4992
dtindex[i], PANDAS_FR_ns, & dts)
@@ -4980,7 +5005,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field,
4980
5005
return out.view(bool )
4981
5006
else :
4982
5007
for i in range (count):
4983
- if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
5008
+ if dtindex[i] == NPY_NAT: out[i] = 0 ; continue
4984
5009
4985
5010
pandas_datetime_to_datetimestruct(
4986
5011
dtindex[i], PANDAS_FR_ns, & dts)
0 commit comments