@@ -1114,21 +1114,17 @@ def test_monthly_resample_error(unit):
1114
1114
ts .resample ("M" )
1115
1115
1116
1116
1117
- def test_nanosecond_resample_error (unit ):
1117
+ def test_nanosecond_resample_error ():
1118
1118
# GH 12307 - Values falls after last bin when
1119
1119
# Resampling using pd.tseries.offsets.Nano as period
1120
1120
start = 1443707890427
1121
1121
exp_start = 1443707890400
1122
- indx = date_range (start = pd .to_datetime (start ), periods = 10 , freq = "100n" ).as_unit (
1123
- unit
1124
- )
1122
+ indx = date_range (start = pd .to_datetime (start ), periods = 10 , freq = "100n" )
1125
1123
ts = Series (range (len (indx )), index = indx )
1126
1124
r = ts .resample (pd .tseries .offsets .Nano (100 ))
1127
1125
result = r .agg ("mean" )
1128
1126
1129
- exp_indx = date_range (
1130
- start = pd .to_datetime (exp_start ), periods = 10 , freq = "100n"
1131
- ).as_unit (unit )
1127
+ exp_indx = date_range (start = pd .to_datetime (exp_start ), periods = 10 , freq = "100n" )
1132
1128
exp = Series (range (len (exp_indx )), index = exp_indx , dtype = float )
1133
1129
1134
1130
tm .assert_series_equal (result , exp )
@@ -1143,7 +1139,7 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
1143
1139
result = df .resample ("M" ).mean ()
1144
1140
expected = df .resample ("M" , kind = "period" ).mean ().to_timestamp (how = "end" )
1145
1141
expected .index += Timedelta (1 , "ns" ) - Timedelta (1 , "D" )
1146
- expected .index = expected .index ._with_freq ("infer" )
1142
+ expected .index = expected .index .as_unit ( unit ). _with_freq ("infer" )
1147
1143
assert expected .index .freq == "M"
1148
1144
tm .assert_frame_equal (result , expected )
1149
1145
@@ -1152,7 +1148,7 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
1152
1148
exp = exp .to_timestamp (how = "end" )
1153
1149
1154
1150
exp .index = exp .index + Timedelta (1 , "ns" ) - Timedelta (1 , "D" )
1155
- exp .index = exp .index ._with_freq ("infer" )
1151
+ exp .index = exp .index .as_unit ( unit ). _with_freq ("infer" )
1156
1152
assert exp .index .freq == "M"
1157
1153
tm .assert_frame_equal (result , exp )
1158
1154
@@ -1164,6 +1160,7 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
1164
1160
expected .index += Timedelta (1 , "ns" ) - Timedelta (1 , "D" )
1165
1161
expected .index ._data .freq = "Q"
1166
1162
expected .index ._freq = lib .no_default
1163
+ expected .index = expected .index .as_unit (unit )
1167
1164
tm .assert_frame_equal (result , expected )
1168
1165
1169
1166
result = df .resample ("Q" , closed = "left" ).mean ()
@@ -1172,9 +1169,11 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
1172
1169
expected .index += Timedelta (1 , "ns" ) - Timedelta (1 , "D" )
1173
1170
expected .index ._data .freq = "Q"
1174
1171
expected .index ._freq = lib .no_default
1172
+ expected .index = expected .index .as_unit (unit )
1175
1173
tm .assert_frame_equal (result , expected )
1176
1174
1177
1175
ts = simple_date_range_series ("2012-04-29 23:00" , "2012-04-30 5:00" , freq = "h" )
1176
+ ts .index = ts .index .as_unit (unit )
1178
1177
resampled = ts .resample ("M" ).mean ()
1179
1178
assert len (resampled ) == 1
1180
1179
@@ -1477,7 +1476,7 @@ def test_resample_group_info(n, k, unit):
1477
1476
ts = Series (prng .randint (0 , n // k , n ).astype ("int64" ), index = prng .choice (dr , n ))
1478
1477
1479
1478
left = ts .resample ("30T" ).nunique ()
1480
- ix = date_range (start = ts .index .min (), end = ts .index .max (), freq = "30T" )
1479
+ ix = date_range (start = ts .index .min (), end = ts .index .max (), freq = "30T" ). as_unit ( unit )
1481
1480
1482
1481
vals = ts .values
1483
1482
bins = np .searchsorted (ix .values , ts .index , side = "right" )
@@ -1705,7 +1704,7 @@ def test_downsample_dst_at_midnight():
1705
1704
tm .assert_frame_equal (result , expected )
1706
1705
1707
1706
1708
- def test_resample_with_nat ():
1707
+ def test_resample_with_nat (unit ):
1709
1708
# GH 13020
1710
1709
index = DatetimeIndex (
1711
1710
[
@@ -1717,35 +1716,39 @@ def test_resample_with_nat():
1717
1716
]
1718
1717
)
1719
1718
frame = DataFrame ([2 , 3 , 5 , 7 , 11 ], index = index )
1719
+ frame .index = frame .index .as_unit (unit )
1720
1720
1721
1721
index_1s = DatetimeIndex (
1722
1722
["1970-01-01 00:00:00" , "1970-01-01 00:00:01" , "1970-01-01 00:00:02" ]
1723
- )
1723
+ ). as_unit ( unit )
1724
1724
frame_1s = DataFrame ([3.0 , 7.0 , 11.0 ], index = index_1s )
1725
1725
tm .assert_frame_equal (frame .resample ("1s" ).mean (), frame_1s )
1726
1726
1727
- index_2s = DatetimeIndex (["1970-01-01 00:00:00" , "1970-01-01 00:00:02" ])
1727
+ index_2s = DatetimeIndex (["1970-01-01 00:00:00" , "1970-01-01 00:00:02" ]).as_unit (
1728
+ unit
1729
+ )
1728
1730
frame_2s = DataFrame ([5.0 , 11.0 ], index = index_2s )
1729
1731
tm .assert_frame_equal (frame .resample ("2s" ).mean (), frame_2s )
1730
1732
1731
- index_3s = DatetimeIndex (["1970-01-01 00:00:00" ])
1733
+ index_3s = DatetimeIndex (["1970-01-01 00:00:00" ]). as_unit ( unit )
1732
1734
frame_3s = DataFrame ([7.0 ], index = index_3s )
1733
1735
tm .assert_frame_equal (frame .resample ("3s" ).mean (), frame_3s )
1734
1736
1735
1737
tm .assert_frame_equal (frame .resample ("60s" ).mean (), frame_3s )
1736
1738
1737
1739
1738
- def test_resample_datetime_values ():
1740
+ def test_resample_datetime_values (unit ):
1739
1741
# GH 13119
1740
1742
# check that datetime dtype is preserved when NaT values are
1741
1743
# introduced by the resampling
1742
1744
1743
1745
dates = [datetime (2016 , 1 , 15 ), datetime (2016 , 1 , 19 )]
1744
1746
df = DataFrame ({"timestamp" : dates }, index = dates )
1747
+ df .index = df .index .as_unit (unit )
1745
1748
1746
1749
exp = Series (
1747
1750
[datetime (2016 , 1 , 15 ), pd .NaT , datetime (2016 , 1 , 19 )],
1748
- index = date_range ("2016-01-15" , periods = 3 , freq = "2D" ),
1751
+ index = date_range ("2016-01-15" , periods = 3 , freq = "2D" ). as_unit ( unit ) ,
1749
1752
name = "timestamp" ,
1750
1753
)
1751
1754
@@ -1755,11 +1758,13 @@ def test_resample_datetime_values():
1755
1758
tm .assert_series_equal (res , exp )
1756
1759
1757
1760
1758
- def test_resample_apply_with_additional_args (series ):
1761
+ def test_resample_apply_with_additional_args (series , unit ):
1759
1762
# GH 14615
1760
1763
def f (data , add_arg ):
1761
1764
return np .mean (data ) * add_arg
1762
1765
1766
+ series .index = series .index .as_unit (unit )
1767
+
1763
1768
multiplier = 10
1764
1769
result = series .resample ("D" ).apply (f , multiplier )
1765
1770
expected = series .resample ("D" ).mean ().multiply (multiplier )
@@ -1793,11 +1798,14 @@ def f(data, add_arg):
1793
1798
(24 , "H" , 1 , "D" ),
1794
1799
],
1795
1800
)
1796
- def test_resample_equivalent_offsets (n1 , freq1 , n2 , freq2 , k ):
1801
+ def test_resample_equivalent_offsets (n1 , freq1 , n2 , freq2 , k , unit ):
1797
1802
# GH 24127
1798
1803
n1_ = n1 * k
1799
1804
n2_ = n2 * k
1800
- s = Series (0 , index = date_range ("19910905 13:00" , "19911005 07:00" , freq = freq1 ))
1805
+ s = Series (
1806
+ 0 ,
1807
+ index = date_range ("19910905 13:00" , "19911005 07:00" , freq = freq1 ).as_unit (unit ),
1808
+ )
1801
1809
s = s + range (len (s ))
1802
1810
1803
1811
result1 = s .resample (str (n1_ ) + freq1 ).mean ()
@@ -1816,11 +1824,11 @@ def test_resample_equivalent_offsets(n1, freq1, n2, freq2, k):
1816
1824
("1991-08" , "1992-04" , "M" , "19910831" , "19920531" ),
1817
1825
],
1818
1826
)
1819
- def test_get_timestamp_range_edges (first , last , freq , exp_first , exp_last ):
1827
+ def test_get_timestamp_range_edges (first , last , freq , exp_first , exp_last , unit ):
1820
1828
first = Period (first )
1821
- first = first .to_timestamp (first .freq )
1829
+ first = first .to_timestamp (first .freq ). as_unit ( unit )
1822
1830
last = Period (last )
1823
- last = last .to_timestamp (last .freq )
1831
+ last = last .to_timestamp (last .freq ). as_unit ( unit )
1824
1832
1825
1833
exp_first = Timestamp (exp_first )
1826
1834
exp_last = Timestamp (exp_last )
@@ -1832,9 +1840,9 @@ def test_get_timestamp_range_edges(first, last, freq, exp_first, exp_last):
1832
1840
1833
1841
1834
1842
@pytest .mark .parametrize ("duplicates" , [True , False ])
1835
- def test_resample_apply_product (duplicates ):
1843
+ def test_resample_apply_product (duplicates , unit ):
1836
1844
# GH 5586
1837
- index = date_range (start = "2012-01-31" , freq = "M" , periods = 12 )
1845
+ index = date_range (start = "2012-01-31" , freq = "M" , periods = 12 ). as_unit ( unit )
1838
1846
1839
1847
ts = Series (range (12 ), index = index )
1840
1848
df = DataFrame ({"A" : ts , "B" : ts + 2 })
@@ -1846,7 +1854,7 @@ def test_resample_apply_product(duplicates):
1846
1854
np .array ([[0 , 24 ], [60 , 210 ], [336 , 720 ], [990 , 1716 ]], dtype = np .int64 ),
1847
1855
index = DatetimeIndex (
1848
1856
["2012-03-31" , "2012-06-30" , "2012-09-30" , "2012-12-31" ], freq = "Q-DEC"
1849
- ),
1857
+ ). as_unit ( unit ) ,
1850
1858
columns = df .columns ,
1851
1859
)
1852
1860
tm .assert_frame_equal (result , expected )
@@ -1888,34 +1896,39 @@ def test_resample_apply_product(duplicates):
1888
1896
],
1889
1897
)
1890
1898
def test_resample_calendar_day_with_dst (
1891
- first : str , last : str , freq_in : str , freq_out : str , exp_last : str
1899
+ first : str , last : str , freq_in : str , freq_out : str , exp_last : str , unit
1892
1900
):
1893
1901
# GH 35219
1894
- ts = Series (1.0 , date_range (first , last , freq = freq_in , tz = "Europe/Amsterdam" ))
1902
+ ts = Series (
1903
+ 1.0 , date_range (first , last , freq = freq_in , tz = "Europe/Amsterdam" ).as_unit (unit )
1904
+ )
1895
1905
result = ts .resample (freq_out ).ffill ()
1896
1906
expected = Series (
1897
- 1.0 , date_range (first , exp_last , freq = freq_out , tz = "Europe/Amsterdam" )
1907
+ 1.0 ,
1908
+ date_range (first , exp_last , freq = freq_out , tz = "Europe/Amsterdam" ).as_unit (unit ),
1898
1909
)
1899
1910
tm .assert_series_equal (result , expected )
1900
1911
1901
1912
1902
1913
@pytest .mark .parametrize ("func" , ["min" , "max" , "first" , "last" ])
1903
- def test_resample_aggregate_functions_min_count (func ):
1914
+ def test_resample_aggregate_functions_min_count (func , unit ):
1904
1915
# GH#37768
1905
- index = date_range (start = "2020" , freq = "M" , periods = 3 )
1916
+ index = date_range (start = "2020" , freq = "M" , periods = 3 ). as_unit ( unit )
1906
1917
ser = Series ([1 , np .nan , np .nan ], index )
1907
1918
result = getattr (ser .resample ("Q" ), func )(min_count = 2 )
1908
1919
expected = Series (
1909
1920
[np .nan ],
1910
- index = DatetimeIndex (["2020-03-31" ], dtype = "datetime64[ns]" , freq = "Q-DEC" ),
1921
+ index = DatetimeIndex (["2020-03-31" ], freq = "Q-DEC" ). as_unit ( unit ),
1911
1922
)
1912
1923
tm .assert_series_equal (result , expected )
1913
1924
1914
1925
1915
- def test_resample_unsigned_int (any_unsigned_int_numpy_dtype ):
1926
+ def test_resample_unsigned_int (any_unsigned_int_numpy_dtype , unit ):
1916
1927
# gh-43329
1917
1928
df = DataFrame (
1918
- index = date_range (start = "2000-01-01" , end = "2000-01-03 23" , freq = "12H" ),
1929
+ index = date_range (start = "2000-01-01" , end = "2000-01-03 23" , freq = "12H" ).as_unit (
1930
+ unit
1931
+ ),
1919
1932
columns = ["x" ],
1920
1933
data = [0 , 1 , 0 ] * 2 ,
1921
1934
dtype = any_unsigned_int_numpy_dtype ,
@@ -1927,6 +1940,8 @@ def test_resample_unsigned_int(any_unsigned_int_numpy_dtype):
1927
1940
expected = DataFrame (
1928
1941
[1 , np .nan , 0 ],
1929
1942
columns = ["x" ],
1930
- index = date_range (start = "2000-01-01" , end = "2000-01-03 23" , freq = "D" ),
1943
+ index = date_range (start = "2000-01-01" , end = "2000-01-03 23" , freq = "D" ).as_unit (
1944
+ unit
1945
+ ),
1931
1946
)
1932
1947
tm .assert_frame_equal (result , expected )
0 commit comments