You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
from datetime import datetime
|
|
|
|
import numpy as np
|
|
|
|
from pandas import (
|
|
DataFrame,
|
|
Index,
|
|
MultiIndex,
|
|
Period,
|
|
Series,
|
|
period_range,
|
|
to_datetime,
|
|
)
|
|
import pandas._testing as tm
|
|
|
|
|
|
def test_multiindex_period_datetime():
|
|
# GH4861, using datetime in period of multiindex raises exception
|
|
|
|
idx1 = Index(["a", "a", "a", "b", "b"])
|
|
idx2 = period_range("2012-01", periods=len(idx1), freq="M")
|
|
s = Series(np.random.default_rng(2).standard_normal(len(idx1)), [idx1, idx2])
|
|
|
|
# try Period as index
|
|
expected = s.iloc[0]
|
|
result = s.loc["a", Period("2012-01")]
|
|
assert result == expected
|
|
|
|
# try datetime as index
|
|
result = s.loc["a", datetime(2012, 1, 1)]
|
|
assert result == expected
|
|
|
|
|
|
def test_multiindex_datetime_columns():
|
|
# GH35015, using datetime as column indices raises exception
|
|
|
|
mi = MultiIndex.from_tuples(
|
|
[(to_datetime("02/29/2020"), to_datetime("03/01/2020"))], names=["a", "b"]
|
|
)
|
|
|
|
df = DataFrame([], columns=mi)
|
|
|
|
expected_df = DataFrame(
|
|
[],
|
|
columns=MultiIndex.from_arrays(
|
|
[[to_datetime("02/29/2020")], [to_datetime("03/01/2020")]], names=["a", "b"]
|
|
),
|
|
)
|
|
|
|
tm.assert_frame_equal(df, expected_df)
|