51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
|
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.randn(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)
|