| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Python312/Lib/site-packages/pandas/tests/indexes/period/ |
Upload File : |
import numpy as np
import pytest
from pandas._libs.tslibs import IncompatibleFrequency
from pandas import (
DataFrame,
Index,
PeriodIndex,
date_range,
period_range,
)
import pandas._testing as tm
class TestJoin:
def test_join_outer_indexer(self):
pi = period_range("1/1/2000", "1/20/2000", freq="D")
result = pi._outer_indexer(pi)
tm.assert_extension_array_equal(result[0], pi._values)
tm.assert_numpy_array_equal(result[1], np.arange(len(pi), dtype=np.intp))
tm.assert_numpy_array_equal(result[2], np.arange(len(pi), dtype=np.intp))
def test_joins(self, join_type):
index = period_range("1/1/2000", "1/20/2000", freq="D")
joined = index.join(index[:-5], how=join_type)
assert isinstance(joined, PeriodIndex)
assert joined.freq == index.freq
def test_join_self(self, join_type):
index = period_range("1/1/2000", "1/20/2000", freq="D")
res = index.join(index, how=join_type)
assert index is res
def test_join_does_not_recur(self):
df = DataFrame(
np.ones((3, 2)),
index=date_range("2020-01-01", periods=3),
columns=period_range("2020-01-01", periods=2),
)
ser = df.iloc[:2, 0]
res = ser.index.join(df.columns, how="outer")
expected = Index(
[ser.index[0], ser.index[1], df.columns[0], df.columns[1]], object
)
tm.assert_index_equal(res, expected)
def test_join_mismatched_freq_raises(self):
index = period_range("1/1/2000", "1/20/2000", freq="D")
index3 = period_range("1/1/2000", "1/20/2000", freq="2D")
msg = r".*Input has different freq=2D from Period\(freq=D\)"
with pytest.raises(IncompatibleFrequency, match=msg):
index.join(index3)