test_reindex.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from datetime import timedelta
  2. import numpy as np
  3. from pandas import (
  4. DatetimeIndex,
  5. date_range,
  6. )
  7. import pandas._testing as tm
  8. class TestDatetimeIndexReindex:
  9. def test_reindex_preserves_tz_if_target_is_empty_list_or_array(self):
  10. # GH#7774
  11. index = date_range("2013-01-01", periods=3, tz="US/Eastern")
  12. assert str(index.reindex([])[0].tz) == "US/Eastern"
  13. assert str(index.reindex(np.array([]))[0].tz) == "US/Eastern"
  14. def test_reindex_with_same_tz_nearest(self):
  15. # GH#32740
  16. rng_a = date_range("2010-01-01", "2010-01-02", periods=24, tz="utc")
  17. rng_b = date_range("2010-01-01", "2010-01-02", periods=23, tz="utc")
  18. result1, result2 = rng_a.reindex(
  19. rng_b, method="nearest", tolerance=timedelta(seconds=20)
  20. )
  21. expected_list1 = [
  22. "2010-01-01 00:00:00",
  23. "2010-01-01 01:05:27.272727272",
  24. "2010-01-01 02:10:54.545454545",
  25. "2010-01-01 03:16:21.818181818",
  26. "2010-01-01 04:21:49.090909090",
  27. "2010-01-01 05:27:16.363636363",
  28. "2010-01-01 06:32:43.636363636",
  29. "2010-01-01 07:38:10.909090909",
  30. "2010-01-01 08:43:38.181818181",
  31. "2010-01-01 09:49:05.454545454",
  32. "2010-01-01 10:54:32.727272727",
  33. "2010-01-01 12:00:00",
  34. "2010-01-01 13:05:27.272727272",
  35. "2010-01-01 14:10:54.545454545",
  36. "2010-01-01 15:16:21.818181818",
  37. "2010-01-01 16:21:49.090909090",
  38. "2010-01-01 17:27:16.363636363",
  39. "2010-01-01 18:32:43.636363636",
  40. "2010-01-01 19:38:10.909090909",
  41. "2010-01-01 20:43:38.181818181",
  42. "2010-01-01 21:49:05.454545454",
  43. "2010-01-01 22:54:32.727272727",
  44. "2010-01-02 00:00:00",
  45. ]
  46. expected1 = DatetimeIndex(
  47. expected_list1, dtype="datetime64[ns, UTC]", freq=None
  48. )
  49. expected2 = np.array([0] + [-1] * 21 + [23], dtype=np.dtype("intp"))
  50. tm.assert_index_equal(result1, expected1)
  51. tm.assert_numpy_array_equal(result2, expected2)