43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from datetime import datetime
 | 
						|
 | 
						|
from pandas import DataFrame
 | 
						|
import pandas._testing as tm
 | 
						|
 | 
						|
 | 
						|
class TestInferObjects:
 | 
						|
    def test_infer_objects(self):
 | 
						|
        # GH#11221
 | 
						|
        df = DataFrame(
 | 
						|
            {
 | 
						|
                "a": ["a", 1, 2, 3],
 | 
						|
                "b": ["b", 2.0, 3.0, 4.1],
 | 
						|
                "c": [
 | 
						|
                    "c",
 | 
						|
                    datetime(2016, 1, 1),
 | 
						|
                    datetime(2016, 1, 2),
 | 
						|
                    datetime(2016, 1, 3),
 | 
						|
                ],
 | 
						|
                "d": [1, 2, 3, "d"],
 | 
						|
            },
 | 
						|
            columns=["a", "b", "c", "d"],
 | 
						|
        )
 | 
						|
        df = df.iloc[1:].infer_objects()
 | 
						|
 | 
						|
        assert df["a"].dtype == "int64"
 | 
						|
        assert df["b"].dtype == "float64"
 | 
						|
        assert df["c"].dtype == "M8[ns]"
 | 
						|
        assert df["d"].dtype == "object"
 | 
						|
 | 
						|
        expected = DataFrame(
 | 
						|
            {
 | 
						|
                "a": [1, 2, 3],
 | 
						|
                "b": [2.0, 3.0, 4.1],
 | 
						|
                "c": [datetime(2016, 1, 1), datetime(2016, 1, 2), datetime(2016, 1, 3)],
 | 
						|
                "d": [2, 3, "d"],
 | 
						|
            },
 | 
						|
            columns=["a", "b", "c", "d"],
 | 
						|
        )
 | 
						|
        # reconstruct frame to verify inference is same
 | 
						|
        result = df.reset_index(drop=True)
 | 
						|
        tm.assert_frame_equal(result, expected)
 |