test_infer_objects.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from datetime import datetime
  2. from pandas import DataFrame
  3. import pandas._testing as tm
  4. class TestInferObjects:
  5. def test_infer_objects(self):
  6. # GH#11221
  7. df = DataFrame(
  8. {
  9. "a": ["a", 1, 2, 3],
  10. "b": ["b", 2.0, 3.0, 4.1],
  11. "c": [
  12. "c",
  13. datetime(2016, 1, 1),
  14. datetime(2016, 1, 2),
  15. datetime(2016, 1, 3),
  16. ],
  17. "d": [1, 2, 3, "d"],
  18. },
  19. columns=["a", "b", "c", "d"],
  20. )
  21. df = df.iloc[1:].infer_objects()
  22. assert df["a"].dtype == "int64"
  23. assert df["b"].dtype == "float64"
  24. assert df["c"].dtype == "M8[ns]"
  25. assert df["d"].dtype == "object"
  26. expected = DataFrame(
  27. {
  28. "a": [1, 2, 3],
  29. "b": [2.0, 3.0, 4.1],
  30. "c": [datetime(2016, 1, 1), datetime(2016, 1, 2), datetime(2016, 1, 3)],
  31. "d": [2, 3, "d"],
  32. },
  33. columns=["a", "b", "c", "d"],
  34. )
  35. # reconstruct frame to verify inference is same
  36. result = df.reset_index(drop=True)
  37. tm.assert_frame_equal(result, expected)