code: def test_fillna_dict_series(self):
      df = DataFrame(
          {
              "a": [np.nan, 1, 2, np.nan, np.nan],
              "b": [1, 2, 3, np.nan, np.nan],
              "c": [np.nan, 1, 2, 3, 4],
          }
      )
  
      result = df.fillna({"a": 0, "b": 5})
  
      expected = df.copy()
      expected["a"] = expected["a"].fillna(0)
      expected["b"] = expected["b"].fillna(5)
      tm.assert_frame_equal(result, expected)
  
      # it works
      result = df.fillna({"a": 0, "b": 5, "d": 7})
  
      # Series treated same as dict
      result = df.fillna(df.max())
      expected = df.fillna(df.max().to_dict())
      tm.assert_frame_equal(result, expected)
  
      # disable this for now
      with pytest.raises(NotImplementedError, match="column by column"):
          df.fillna(df.max(1), axis=1)
  
imports: import numpy
  import pytest
  from pandas._config import using_pyarrow_string_dtype
  from pandas import Categorical, DataFrame, DatetimeIndex, NaT, PeriodIndex, Series, TimedeltaIndex, Timestamp, date_range, to_datetime
  import pandas._testing
  from pandas.tests.frame.common import _check_mixed_float
label_desc: Use image node_id 29 for calling the TestFillNA obj's underlying member method code with example usage: obj.test_fillna_dict_series() without return types