input: Write a python function to load a dataset, separate features and target, split the data into training and testing sets, and standardize the data.
  assert X_train.shape[0] == 0.8 * data.shape[0]
  assert X_test.shape[0] == 0.2 * data.shape[0]
  assert X_train.mean() == 0
  assert X_train.std() == 1
output: def preprocess_data(data, target_column):
      from sklearn.model_selection import train_test_split
      from sklearn.preprocessing import StandardScaler
  
      # Separate features and target
      X = data.drop(columns=[target_column])
      y = data[target_column]
  
      # Split the data into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  
      # Standardize the data
      scaler = StandardScaler()
      X_train = scaler.fit_transform(X_train)
      X_test = scaler.transform(X_test)
  
      # Check assertions
      assert X_train.shape[0] == 0.8 * data.shape[0]
      assert X_test.shape[0] == 0.2 * data.shape[0]
      assert X_train.mean() == 0
      assert X_train.std() == 1
  
      return X_train, X_test, y_train, y_test