test_to_frame.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from pandas import (
  2. DataFrame,
  3. Index,
  4. Series,
  5. )
  6. import pandas._testing as tm
  7. class TestToFrame:
  8. def test_to_frame_respects_name_none(self):
  9. # GH#44212 if we explicitly pass name=None, then that should be respected,
  10. # not changed to 0
  11. # GH-45448 this is first deprecated & enforced in 2.0
  12. ser = Series(range(3))
  13. result = ser.to_frame(None)
  14. exp_index = Index([None], dtype=object)
  15. tm.assert_index_equal(result.columns, exp_index)
  16. result = ser.rename("foo").to_frame(None)
  17. exp_index = Index([None], dtype=object)
  18. tm.assert_index_equal(result.columns, exp_index)
  19. def test_to_frame(self, datetime_series):
  20. datetime_series.name = None
  21. rs = datetime_series.to_frame()
  22. xp = DataFrame(datetime_series.values, index=datetime_series.index)
  23. tm.assert_frame_equal(rs, xp)
  24. datetime_series.name = "testname"
  25. rs = datetime_series.to_frame()
  26. xp = DataFrame(
  27. {"testname": datetime_series.values}, index=datetime_series.index
  28. )
  29. tm.assert_frame_equal(rs, xp)
  30. rs = datetime_series.to_frame(name="testdifferent")
  31. xp = DataFrame(
  32. {"testdifferent": datetime_series.values}, index=datetime_series.index
  33. )
  34. tm.assert_frame_equal(rs, xp)
  35. def test_to_frame_expanddim(self):
  36. # GH#9762
  37. class SubclassedSeries(Series):
  38. @property
  39. def _constructor_expanddim(self):
  40. return SubclassedFrame
  41. class SubclassedFrame(DataFrame):
  42. pass
  43. ser = SubclassedSeries([1, 2, 3], name="X")
  44. result = ser.to_frame()
  45. assert isinstance(result, SubclassedFrame)
  46. expected = SubclassedFrame({"X": [1, 2, 3]})
  47. tm.assert_frame_equal(result, expected)