code: def test_append_different_columns_types(
      self, df_columns, series_index
  ):
      # GH18359
      # See also test 'test_append_different_columns_types_raises' below
      # for errors raised when appending
  
      df = DataFrame([[1, 2, 3], [4, 5, 6]], columns=df_columns)
      ser = Series([7, 8, 9], index=series_index, name=2)
  
      result = df._append(ser)
      idx_diff = ser.index.difference(df_columns)
      combined_columns = Index(df_columns.tolist()).append(idx_diff)
      expected = DataFrame(
          [
              [1.0, 2.0, 3.0, np.nan, np.nan, np.nan],
              [4, 5, 6, np.nan, np.nan, np.nan],
              [np.nan, np.nan, np.nan, 7, 8, 9],
          ],
          index=[0, 1, 2],
          columns=combined_columns,
      )
      tm.assert_frame_equal(result, expected)
  
imports: import datetime
  from itertools import combinations
  import dateutil
  import numpy
  import pytest
  import pandas
  from pandas import DataFrame, Index, Series, Timestamp, concat, isna
  import pandas._testing
label_desc: Use image node_id 12 for calling the TestAppend obj's underlying member method code with example usage: obj.test_append_different_columns_types(df_columns, series_index) without return types