@@ -2870,6 +2870,45 @@ def test_upsampling_ohlc_freq_multiples(self):
2870
2870
result = s .resample ('12H' , kind = 'period' ).ohlc ()
2871
2871
assert_frame_equal (result , expected )
2872
2872
2873
+ def test_resample_with_nat (self ):
2874
+ # GH 13224
2875
+ index = PeriodIndex ([pd .NaT , '1970-01-01 00:00:00' , pd .NaT ,
2876
+ '1970-01-01 00:00:01' , '1970-01-01 00:00:02' ],
2877
+ freq = 'S' )
2878
+ frame = DataFrame ([2 , 3 , 5 , 7 , 11 ], index = index )
2879
+
2880
+ index_1s = PeriodIndex (['1970-01-01 00:00:00' , '1970-01-01 00:00:01' ,
2881
+ '1970-01-01 00:00:02' ], freq = 'S' )
2882
+ frame_1s = DataFrame ([3 , 7 , 11 ], index = index_1s )
2883
+ result_1s = frame .resample ('1s' ).mean ()
2884
+ assert_frame_equal (result_1s , frame_1s )
2885
+
2886
+ index_2s = PeriodIndex (['1970-01-01 00:00:00' ,
2887
+ '1970-01-01 00:00:02' ], freq = '2S' )
2888
+ frame_2s = DataFrame ([5 , 11 ], index = index_2s )
2889
+ result_2s = frame .resample ('2s' ).mean ()
2890
+ assert_frame_equal (result_2s , frame_2s )
2891
+
2892
+ index_3s = PeriodIndex (['1970-01-01 00:00:00' ], freq = '3S' )
2893
+ frame_3s = DataFrame ([7 ], index = index_3s )
2894
+ result_3s = frame .resample ('3s' ).mean ()
2895
+ assert_frame_equal (result_3s , frame_3s )
2896
+
2897
+ pi = PeriodIndex (['1970-01-01 00:00:00' , pd .NaT ,
2898
+ '1970-01-01 00:00:02' ], freq = 'S' )
2899
+ frame = DataFrame ([2 , 3 , 5 ], index = pi )
2900
+ expected_index = period_range (pi [0 ], periods = len (pi ), freq = pi .freq )
2901
+ expected = DataFrame ([2 , np .NaN , 5 ], index = expected_index )
2902
+ result = frame .resample ('1s' ).mean ()
2903
+ assert_frame_equal (result , expected )
2904
+
2905
+ pi = PeriodIndex ([pd .NaT ] * 3 , freq = 'S' )
2906
+ frame = DataFrame ([2 , 3 , 5 ], index = pi )
2907
+ expected_index = PeriodIndex (data = [], freq = pi .freq )
2908
+ expected = DataFrame ([], index = expected_index )
2909
+ result = frame .resample ('1s' ).mean ()
2910
+ assert_frame_equal (result , expected )
2911
+
2873
2912
2874
2913
class TestTimedeltaIndex (Base , tm .TestCase ):
2875
2914
_index_factory = lambda x : timedelta_range
0 commit comments