48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import pytest
 | 
						|
 | 
						|
from pandas import (
 | 
						|
    DatetimeIndex,
 | 
						|
    Index,
 | 
						|
    MultiIndex,
 | 
						|
    Period,
 | 
						|
    date_range,
 | 
						|
)
 | 
						|
import pandas._testing as tm
 | 
						|
 | 
						|
 | 
						|
class TestMap:
 | 
						|
    def test_map(self):
 | 
						|
        rng = date_range("1/1/2000", periods=10)
 | 
						|
 | 
						|
        f = lambda x: x.strftime("%Y%m%d")
 | 
						|
        result = rng.map(f)
 | 
						|
        exp = Index([f(x) for x in rng], dtype="<U8")
 | 
						|
        tm.assert_index_equal(result, exp)
 | 
						|
 | 
						|
    def test_map_fallthrough(self, capsys):
 | 
						|
        # GH#22067, check we don't get warnings about silently ignored errors
 | 
						|
        dti = date_range("2017-01-01", "2018-01-01", freq="B")
 | 
						|
 | 
						|
        dti.map(lambda x: Period(year=x.year, month=x.month, freq="M"))
 | 
						|
 | 
						|
        captured = capsys.readouterr()
 | 
						|
        assert captured.err == ""
 | 
						|
 | 
						|
    def test_map_bug_1677(self):
 | 
						|
        index = DatetimeIndex(["2012-04-25 09:30:00.393000"])
 | 
						|
        f = index.asof
 | 
						|
 | 
						|
        result = index.map(f)
 | 
						|
        expected = Index([f(index[0])])
 | 
						|
        tm.assert_index_equal(result, expected)
 | 
						|
 | 
						|
    @pytest.mark.parametrize("name", [None, "name"])
 | 
						|
    def test_index_map(self, name):
 | 
						|
        # see GH#20990
 | 
						|
        count = 6
 | 
						|
        index = date_range("2018-01-01", periods=count, freq="M", name=name).map(
 | 
						|
            lambda x: (x.year, x.month)
 | 
						|
        )
 | 
						|
        exp_index = MultiIndex.from_product(((2018,), range(1, 7)), names=[name, name])
 | 
						|
        tm.assert_index_equal(index, exp_index)
 |