code: def winsorise_uint32(df, invalid_data_behavior, column, *columns):
      """Drops any record where a value would not fit into a uint32.
  
      Parameters
      ----------
      df : pd.DataFrame
          The dataframe to winsorise.
      invalid_data_behavior : {'warn', 'raise', 'ignore'}
          What to do when data is outside the bounds of a uint32.
      *columns : iterable[str]
          The names of the columns to check.
  
      Returns
      -------
      truncated : pd.DataFrame
          ``df`` with values that do not fit into a uint32 zeroed out.
      """
      columns = list((column,) + columns)
      mask = df[columns] > UINT32_MAX
  
      if invalid_data_behavior != "ignore":
          mask |= df[columns].isnull()
      else:
          # we are not going to generate a warning or error for this so just use
          # nan_to_num
          df[columns] = np.nan_to_num(df[columns])
  
      mv = mask.values
      if mv.any():
          if invalid_data_behavior == "raise":
              raise ValueError(
                  "%d values out of bounds for uint32: %r"
                  % (
                      mv.sum(),
                      df[mask.any(axis=1)],
                  ),
              )
          if invalid_data_behavior == "warn":
              warnings.warn(
                  "Ignoring %d values because they are out of bounds for"
                  " uint32: %r"
                  % (
                      mv.sum(),
                      df[mask.any(axis=1)],
                  ),
                  stacklevel=3,  # one extra frame for `expect_element`
              )
  
      df[mask] = 0
      return df
  
imports: from functools import partial
  import warnings
  from bcolz import carray, ctable
  import logbook
  import numpy
  from numpy import array, full, iinfo, nan
  from pandas import DatetimeIndex, NaT, read_csv, to_datetime, Timestamp
  from six import iteritems, viewkeys
  from toolz import compose
  from trading_calendars import get_calendar
  from zipline.data.session_bars import CurrencyAwareSessionBarReader
  from zipline.data.bar_reader import NoDataAfterDate, NoDataBeforeDate, NoDataOnDate
  from zipline.utils.functional import apply
  from zipline.utils.input_validation import expect_element
  from zipline.utils.numpy_utils import iNaT, float64_dtype, uint32_dtype
  from zipline.utils.memoize import lazyval
  from zipline.utils.cli import maybe_show_progress
  from ._equities import _compute_row_slices, _read_bcolz_data
label_desc: Use image node_id 2 for calling a global function with example usage: winsorise_uint32(df, invalid_data_behavior, column) and returns: df