@@ -3950,24 +3950,30 @@ def test_pi_pi_comp(self):
3950
3950
3951
3951
exp = np .array ([False , True , False , False ])
3952
3952
self .assert_numpy_array_equal (base == p , exp )
3953
+ self .assert_numpy_array_equal (p == base , exp )
3953
3954
3954
3955
exp = np .array ([True , False , True , True ])
3955
3956
self .assert_numpy_array_equal (base != p , exp )
3957
+ self .assert_numpy_array_equal (p != base , exp )
3956
3958
3957
3959
exp = np .array ([False , False , True , True ])
3958
3960
self .assert_numpy_array_equal (base > p , exp )
3961
+ self .assert_numpy_array_equal (p < base , exp )
3959
3962
3960
3963
exp = np .array ([True , False , False , False ])
3961
3964
self .assert_numpy_array_equal (base < p , exp )
3965
+ self .assert_numpy_array_equal (p > base , exp )
3962
3966
3963
3967
exp = np .array ([False , True , True , True ])
3964
3968
self .assert_numpy_array_equal (base >= p , exp )
3969
+ self .assert_numpy_array_equal (p <= base , exp )
3965
3970
3966
3971
exp = np .array ([True , True , False , False ])
3967
3972
self .assert_numpy_array_equal (base <= p , exp )
3973
+ self .assert_numpy_array_equal (p >= base , exp )
3968
3974
3969
- idx = PeriodIndex (
3970
- [ '2011-02' , '2011-01' , '2011-03' , '2011-05' ], freq = freq )
3975
+ idx = PeriodIndex ([ '2011-02' , '2011-01' , '2011-03' ,
3976
+ '2011-05' ], freq = freq )
3971
3977
3972
3978
exp = np .array ([False , False , True , False ])
3973
3979
self .assert_numpy_array_equal (base == idx , exp )
@@ -3992,6 +3998,9 @@ def test_pi_pi_comp(self):
3992
3998
with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
3993
3999
base <= Period ('2011' , freq = 'A' )
3994
4000
4001
+ with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4002
+ Period ('2011' , freq = 'A' ) >= base
4003
+
3995
4004
with tm .assertRaisesRegexp (ValueError , msg ):
3996
4005
idx = PeriodIndex (['2011' , '2012' , '2013' , '2014' ], freq = 'A' )
3997
4006
base <= idx
@@ -4001,6 +4010,9 @@ def test_pi_pi_comp(self):
4001
4010
with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4002
4011
base <= Period ('2011' , freq = '4M' )
4003
4012
4013
+ with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4014
+ Period ('2011' , freq = '4M' ) >= base
4015
+
4004
4016
with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4005
4017
idx = PeriodIndex (['2011' , '2012' , '2013' , '2014' ], freq = '4M' )
4006
4018
base <= idx
@@ -4013,17 +4025,23 @@ def test_pi_nat_comp(self):
4013
4025
result = idx1 > Period ('2011-02' , freq = freq )
4014
4026
exp = np .array ([False , False , False , True ])
4015
4027
self .assert_numpy_array_equal (result , exp )
4028
+ result = Period ('2011-02' , freq = freq ) < idx1
4029
+ self .assert_numpy_array_equal (result , exp )
4016
4030
4017
4031
result = idx1 == Period ('NaT' , freq = freq )
4018
4032
exp = np .array ([False , False , False , False ])
4019
4033
self .assert_numpy_array_equal (result , exp )
4034
+ result = Period ('NaT' , freq = freq ) == idx1
4035
+ self .assert_numpy_array_equal (result , exp )
4020
4036
4021
4037
result = idx1 != Period ('NaT' , freq = freq )
4022
4038
exp = np .array ([True , True , True , True ])
4023
4039
self .assert_numpy_array_equal (result , exp )
4040
+ result = Period ('NaT' , freq = freq ) != idx1
4041
+ self .assert_numpy_array_equal (result , exp )
4024
4042
4025
- idx2 = PeriodIndex (
4026
- [ '2011-02' , '2011-01' , '2011-04' , 'NaT' ], freq = freq )
4043
+ idx2 = PeriodIndex ([ '2011-02' , '2011-01' , '2011-04' ,
4044
+ 'NaT' ], freq = freq )
4027
4045
result = idx1 < idx2
4028
4046
exp = np .array ([True , False , False , False ])
4029
4047
self .assert_numpy_array_equal (result , exp )
@@ -4044,11 +4062,12 @@ def test_pi_nat_comp(self):
4044
4062
exp = np .array ([False , False , True , False ])
4045
4063
self .assert_numpy_array_equal (result , exp )
4046
4064
4047
- diff = PeriodIndex (
4048
- [ '2011-02' , '2011-01' , '2011-04' , 'NaT' ], freq = '4M' )
4065
+ diff = PeriodIndex ([ '2011-02' , '2011-01' , '2011-04' ,
4066
+ 'NaT' ], freq = '4M' )
4049
4067
msg = "Input has different freq=4M from PeriodIndex"
4050
4068
with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4051
4069
idx1 > diff
4070
+
4052
4071
with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4053
4072
idx1 == diff
4054
4073
@@ -4185,6 +4204,106 @@ def test_ops_series_period(self):
4185
4204
tm .assert_series_equal (s2 - s , exp )
4186
4205
tm .assert_series_equal (s - s2 , - exp )
4187
4206
4207
+ def test_comp_series_period_scalar (self ):
4208
+ # GH 13200
4209
+ for freq in ['M' , '2M' , '3M' ]:
4210
+ base = Series ([Period (x , freq = freq ) for x in
4211
+ ['2011-01' , '2011-02' , '2011-03' , '2011-04' ]])
4212
+ p = Period ('2011-02' , freq = freq )
4213
+
4214
+ exp = pd .Series ([False , True , False , False ])
4215
+ tm .assert_series_equal (base == p , exp )
4216
+ tm .assert_series_equal (p == base , exp )
4217
+
4218
+ exp = pd .Series ([True , False , True , True ])
4219
+ tm .assert_series_equal (base != p , exp )
4220
+ tm .assert_series_equal (p != base , exp )
4221
+
4222
+ exp = pd .Series ([False , False , True , True ])
4223
+ tm .assert_series_equal (base > p , exp )
4224
+ tm .assert_series_equal (p < base , exp )
4225
+
4226
+ exp = pd .Series ([True , False , False , False ])
4227
+ tm .assert_series_equal (base < p , exp )
4228
+ tm .assert_series_equal (p > base , exp )
4229
+
4230
+ exp = pd .Series ([False , True , True , True ])
4231
+ tm .assert_series_equal (base >= p , exp )
4232
+ tm .assert_series_equal (p <= base , exp )
4233
+
4234
+ exp = pd .Series ([True , True , False , False ])
4235
+ tm .assert_series_equal (base <= p , exp )
4236
+ tm .assert_series_equal (p >= base , exp )
4237
+
4238
+ # different base freq
4239
+ msg = "Input has different freq=A-DEC from Period"
4240
+ with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4241
+ base <= Period ('2011' , freq = 'A' )
4242
+
4243
+ with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4244
+ Period ('2011' , freq = 'A' ) >= base
4245
+
4246
+ def test_comp_series_period_series (self ):
4247
+ # GH 13200
4248
+ for freq in ['M' , '2M' , '3M' ]:
4249
+ base = Series ([Period (x , freq = freq ) for x in
4250
+ ['2011-01' , '2011-02' , '2011-03' , '2011-04' ]])
4251
+
4252
+ s = Series ([Period (x , freq = freq ) for x in
4253
+ ['2011-02' , '2011-01' , '2011-03' , '2011-05' ]])
4254
+
4255
+ exp = Series ([False , False , True , False ])
4256
+ tm .assert_series_equal (base == s , exp )
4257
+
4258
+ exp = Series ([True , True , False , True ])
4259
+ tm .assert_series_equal (base != s , exp )
4260
+
4261
+ exp = Series ([False , True , False , False ])
4262
+ tm .assert_series_equal (base > s , exp )
4263
+
4264
+ exp = Series ([True , False , False , True ])
4265
+ tm .assert_series_equal (base < s , exp )
4266
+
4267
+ exp = Series ([False , True , True , False ])
4268
+ tm .assert_series_equal (base >= s , exp )
4269
+
4270
+ exp = Series ([True , False , True , True ])
4271
+ tm .assert_series_equal (base <= s , exp )
4272
+
4273
+ s2 = Series ([Period (x , freq = 'A' ) for x in
4274
+ ['2011' , '2011' , '2011' , '2011' ]])
4275
+
4276
+ # different base freq
4277
+ msg = "Input has different freq=A-DEC from Period"
4278
+ with tm .assertRaisesRegexp (period .IncompatibleFrequency , msg ):
4279
+ base <= s2
4280
+
4281
+ def test_comp_series_period_object (self ):
4282
+ # GH 13200
4283
+ base = Series ([Period ('2011' , freq = 'A' ), Period ('2011-02' , freq = 'M' ),
4284
+ Period ('2013' , freq = 'A' ), Period ('2011-04' , freq = 'M' )])
4285
+
4286
+ s = Series ([Period ('2012' , freq = 'A' ), Period ('2011-01' , freq = 'M' ),
4287
+ Period ('2013' , freq = 'A' ), Period ('2011-05' , freq = 'M' )])
4288
+
4289
+ exp = Series ([False , False , True , False ])
4290
+ tm .assert_series_equal (base == s , exp )
4291
+
4292
+ exp = Series ([True , True , False , True ])
4293
+ tm .assert_series_equal (base != s , exp )
4294
+
4295
+ exp = Series ([False , True , False , False ])
4296
+ tm .assert_series_equal (base > s , exp )
4297
+
4298
+ exp = Series ([True , False , False , True ])
4299
+ tm .assert_series_equal (base < s , exp )
4300
+
4301
+ exp = Series ([False , True , True , False ])
4302
+ tm .assert_series_equal (base >= s , exp )
4303
+
4304
+ exp = Series ([True , False , True , True ])
4305
+ tm .assert_series_equal (base <= s , exp )
4306
+
4188
4307
def test_ops_frame_period (self ):
4189
4308
# GH 13043
4190
4309
df = pd .DataFrame ({'A' : [pd .Period ('2015-01' , freq = 'M' ),
0 commit comments