Skip to content

Commit a62c1e9

Browse files
jbrockmendelroberthdevries
authored andcommitted
REF: test_to_timestamp (pandas-dev#32248)
1 parent a753e92 commit a62c1e9

File tree

2 files changed

+105
-102
lines changed

2 files changed

+105
-102
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
from datetime import timedelta
2+
3+
import numpy as np
4+
import pytest
5+
6+
from pandas import (
7+
DataFrame,
8+
DatetimeIndex,
9+
Timedelta,
10+
date_range,
11+
period_range,
12+
to_datetime,
13+
)
14+
import pandas._testing as tm
15+
16+
17+
class TestToTimestamp:
18+
def test_frame_to_time_stamp(self):
19+
K = 5
20+
index = period_range(freq="A", start="1/1/2001", end="12/1/2009")
21+
df = DataFrame(np.random.randn(len(index), K), index=index)
22+
df["mix"] = "a"
23+
24+
exp_index = date_range("1/1/2001", end="12/31/2009", freq="A-DEC")
25+
exp_index = exp_index + Timedelta(1, "D") - Timedelta(1, "ns")
26+
result = df.to_timestamp("D", "end")
27+
tm.assert_index_equal(result.index, exp_index)
28+
tm.assert_numpy_array_equal(result.values, df.values)
29+
30+
exp_index = date_range("1/1/2001", end="1/1/2009", freq="AS-JAN")
31+
result = df.to_timestamp("D", "start")
32+
tm.assert_index_equal(result.index, exp_index)
33+
34+
def _get_with_delta(delta, freq="A-DEC"):
35+
return date_range(
36+
to_datetime("1/1/2001") + delta,
37+
to_datetime("12/31/2009") + delta,
38+
freq=freq,
39+
)
40+
41+
delta = timedelta(hours=23)
42+
result = df.to_timestamp("H", "end")
43+
exp_index = _get_with_delta(delta)
44+
exp_index = exp_index + Timedelta(1, "h") - Timedelta(1, "ns")
45+
tm.assert_index_equal(result.index, exp_index)
46+
47+
delta = timedelta(hours=23, minutes=59)
48+
result = df.to_timestamp("T", "end")
49+
exp_index = _get_with_delta(delta)
50+
exp_index = exp_index + Timedelta(1, "m") - Timedelta(1, "ns")
51+
tm.assert_index_equal(result.index, exp_index)
52+
53+
result = df.to_timestamp("S", "end")
54+
delta = timedelta(hours=23, minutes=59, seconds=59)
55+
exp_index = _get_with_delta(delta)
56+
exp_index = exp_index + Timedelta(1, "s") - Timedelta(1, "ns")
57+
tm.assert_index_equal(result.index, exp_index)
58+
59+
# columns
60+
df = df.T
61+
62+
exp_index = date_range("1/1/2001", end="12/31/2009", freq="A-DEC")
63+
exp_index = exp_index + Timedelta(1, "D") - Timedelta(1, "ns")
64+
result = df.to_timestamp("D", "end", axis=1)
65+
tm.assert_index_equal(result.columns, exp_index)
66+
tm.assert_numpy_array_equal(result.values, df.values)
67+
68+
exp_index = date_range("1/1/2001", end="1/1/2009", freq="AS-JAN")
69+
result = df.to_timestamp("D", "start", axis=1)
70+
tm.assert_index_equal(result.columns, exp_index)
71+
72+
delta = timedelta(hours=23)
73+
result = df.to_timestamp("H", "end", axis=1)
74+
exp_index = _get_with_delta(delta)
75+
exp_index = exp_index + Timedelta(1, "h") - Timedelta(1, "ns")
76+
tm.assert_index_equal(result.columns, exp_index)
77+
78+
delta = timedelta(hours=23, minutes=59)
79+
result = df.to_timestamp("T", "end", axis=1)
80+
exp_index = _get_with_delta(delta)
81+
exp_index = exp_index + Timedelta(1, "m") - Timedelta(1, "ns")
82+
tm.assert_index_equal(result.columns, exp_index)
83+
84+
result = df.to_timestamp("S", "end", axis=1)
85+
delta = timedelta(hours=23, minutes=59, seconds=59)
86+
exp_index = _get_with_delta(delta)
87+
exp_index = exp_index + Timedelta(1, "s") - Timedelta(1, "ns")
88+
tm.assert_index_equal(result.columns, exp_index)
89+
90+
# invalid axis
91+
with pytest.raises(ValueError, match="axis"):
92+
df.to_timestamp(axis=2)
93+
94+
result1 = df.to_timestamp("5t", axis=1)
95+
result2 = df.to_timestamp("t", axis=1)
96+
expected = date_range("2001-01-01", "2009-01-01", freq="AS")
97+
assert isinstance(result1.columns, DatetimeIndex)
98+
assert isinstance(result2.columns, DatetimeIndex)
99+
tm.assert_numpy_array_equal(result1.columns.asi8, expected.asi8)
100+
tm.assert_numpy_array_equal(result2.columns.asi8, expected.asi8)
101+
# PeriodIndex.to_timestamp always use 'infer'
102+
assert result1.columns.freqstr == "AS-JAN"
103+
assert result2.columns.freqstr == "AS-JAN"

pandas/tests/frame/test_period.py

+2-102
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,6 @@
1-
from datetime import timedelta
2-
31
import numpy as np
4-
import pytest
5-
6-
import pandas as pd
7-
from pandas import (
8-
DataFrame,
9-
DatetimeIndex,
10-
Index,
11-
PeriodIndex,
12-
Timedelta,
13-
date_range,
14-
period_range,
15-
to_datetime,
16-
)
2+
3+
from pandas import DataFrame, Index, PeriodIndex, period_range
174
import pandas._testing as tm
185

196

@@ -49,93 +36,6 @@ def test_frame_setitem(self):
4936
assert isinstance(rs.index, PeriodIndex)
5037
tm.assert_index_equal(rs.index, rng)
5138

52-
def test_frame_to_time_stamp(self):
53-
K = 5
54-
index = period_range(freq="A", start="1/1/2001", end="12/1/2009")
55-
df = DataFrame(np.random.randn(len(index), K), index=index)
56-
df["mix"] = "a"
57-
58-
exp_index = date_range("1/1/2001", end="12/31/2009", freq="A-DEC")
59-
exp_index = exp_index + Timedelta(1, "D") - Timedelta(1, "ns")
60-
result = df.to_timestamp("D", "end")
61-
tm.assert_index_equal(result.index, exp_index)
62-
tm.assert_numpy_array_equal(result.values, df.values)
63-
64-
exp_index = date_range("1/1/2001", end="1/1/2009", freq="AS-JAN")
65-
result = df.to_timestamp("D", "start")
66-
tm.assert_index_equal(result.index, exp_index)
67-
68-
def _get_with_delta(delta, freq="A-DEC"):
69-
return date_range(
70-
to_datetime("1/1/2001") + delta,
71-
to_datetime("12/31/2009") + delta,
72-
freq=freq,
73-
)
74-
75-
delta = timedelta(hours=23)
76-
result = df.to_timestamp("H", "end")
77-
exp_index = _get_with_delta(delta)
78-
exp_index = exp_index + Timedelta(1, "h") - Timedelta(1, "ns")
79-
tm.assert_index_equal(result.index, exp_index)
80-
81-
delta = timedelta(hours=23, minutes=59)
82-
result = df.to_timestamp("T", "end")
83-
exp_index = _get_with_delta(delta)
84-
exp_index = exp_index + Timedelta(1, "m") - Timedelta(1, "ns")
85-
tm.assert_index_equal(result.index, exp_index)
86-
87-
result = df.to_timestamp("S", "end")
88-
delta = timedelta(hours=23, minutes=59, seconds=59)
89-
exp_index = _get_with_delta(delta)
90-
exp_index = exp_index + Timedelta(1, "s") - Timedelta(1, "ns")
91-
tm.assert_index_equal(result.index, exp_index)
92-
93-
# columns
94-
df = df.T
95-
96-
exp_index = date_range("1/1/2001", end="12/31/2009", freq="A-DEC")
97-
exp_index = exp_index + Timedelta(1, "D") - Timedelta(1, "ns")
98-
result = df.to_timestamp("D", "end", axis=1)
99-
tm.assert_index_equal(result.columns, exp_index)
100-
tm.assert_numpy_array_equal(result.values, df.values)
101-
102-
exp_index = date_range("1/1/2001", end="1/1/2009", freq="AS-JAN")
103-
result = df.to_timestamp("D", "start", axis=1)
104-
tm.assert_index_equal(result.columns, exp_index)
105-
106-
delta = timedelta(hours=23)
107-
result = df.to_timestamp("H", "end", axis=1)
108-
exp_index = _get_with_delta(delta)
109-
exp_index = exp_index + Timedelta(1, "h") - Timedelta(1, "ns")
110-
tm.assert_index_equal(result.columns, exp_index)
111-
112-
delta = timedelta(hours=23, minutes=59)
113-
result = df.to_timestamp("T", "end", axis=1)
114-
exp_index = _get_with_delta(delta)
115-
exp_index = exp_index + Timedelta(1, "m") - Timedelta(1, "ns")
116-
tm.assert_index_equal(result.columns, exp_index)
117-
118-
result = df.to_timestamp("S", "end", axis=1)
119-
delta = timedelta(hours=23, minutes=59, seconds=59)
120-
exp_index = _get_with_delta(delta)
121-
exp_index = exp_index + Timedelta(1, "s") - Timedelta(1, "ns")
122-
tm.assert_index_equal(result.columns, exp_index)
123-
124-
# invalid axis
125-
with pytest.raises(ValueError, match="axis"):
126-
df.to_timestamp(axis=2)
127-
128-
result1 = df.to_timestamp("5t", axis=1)
129-
result2 = df.to_timestamp("t", axis=1)
130-
expected = pd.date_range("2001-01-01", "2009-01-01", freq="AS")
131-
assert isinstance(result1.columns, DatetimeIndex)
132-
assert isinstance(result2.columns, DatetimeIndex)
133-
tm.assert_numpy_array_equal(result1.columns.asi8, expected.asi8)
134-
tm.assert_numpy_array_equal(result2.columns.asi8, expected.asi8)
135-
# PeriodIndex.to_timestamp always use 'infer'
136-
assert result1.columns.freqstr == "AS-JAN"
137-
assert result2.columns.freqstr == "AS-JAN"
138-
13939
def test_frame_index_to_string(self):
14040
index = PeriodIndex(["2011-1", "2011-2", "2011-3"], freq="M")
14141
frame = DataFrame(np.random.randn(3, 4), index=index)

0 commit comments

Comments
 (0)