code: def convert_excel_date(
      df: pd.DataFrame, column_name: Hashable
  ) -> pd.DataFrame:
      """Convert Excel's serial date format into Python datetime format.
  
      This method mutates the original DataFrame.
  
      Implementation is also from
      [Stack Overflow](https://stackoverflow.com/questions/38454403/convert-excel-style-date-with-pandas).
  
      Examples:
          >>> import pandas as pd
          >>> import janitor
          >>> df = pd.DataFrame({"date": [39690, 39690, 37118]})
          >>> df
              date
          0  39690
          1  39690
          2  37118
          >>> df.convert_excel_date('date')
                  date
          0 2008-08-30
          1 2008-08-30
          2 2001-08-15
  
      Args:
          df: A pandas DataFrame.
          column_name: A column name.
  
      Raises:
          ValueError: If there are non numeric values in the column.
  
      Returns:
          A pandas DataFrame with corrected dates.
      """  # noqa: E501
  
      if not is_numeric_dtype(df[column_name]):
          raise ValueError(
              "There are non-numeric values in the column. "
              "All values must be numeric."
          )
  
      df[column_name] = pd.TimedeltaIndex(
          df[column_name], unit="d"
      ) + dt.datetime(
          1899, 12, 30
      )  # noqa: W503
      return df
  
file_path: pyjanitor/janitor/functions/convert_date.py
imports: import datetime
  from typing import Hashable
  import pandas
  import pandas_flavor
  from pandas.api.types import is_numeric_dtype
  from pandas.errors import OutOfBoundsDatetime
  from janitor.utils import deprecated_alias
label_desc: Use image node_id 1 for calling a global function with example usage: convert_excel_date(df, column_name) and returns: df