diff --git a/clarite/modules/modify.py b/clarite/modules/modify.py
index 426ab86..879a5ff 100644
--- a/clarite/modules/modify.py
+++ b/clarite/modules/modify.py
@@ -116,7 +116,7 @@ def categorize(data: pd.DataFrame, cat_min: int = 3, cat_max: int = 6, cont_min:
                 # Couldn't convert to a number- possibly a categorical variable with string names?
                 keep_cont[col] = False
                 check_cont[col] = True
-                data[col] = data.loc[~col.isna(), col].astype(str)
+                data[col] = data.loc[:, col].astype(str)
 
     # Other - Convert non-NA values to string type
     check_other = ~empty_vars & ~keep_constant & ~keep_bin & ~keep_cat & ~check_cont & ~keep_cont

`categorize` has trouble when attempting to classify a string variable as continuous
```AttributeError                            Traceback (most recent call last)
<ipython-input-65-5899bda027b5> in <module>
      1 # Automate categorization
----> 2 data = clarite.modify.categorize(data)
      3 
      4 # Set known categorizations
      5 # Continuous

/storage/work/j/jrm5100/python_venvs/venv_clarite/lib/python3.6/site-packages/clarite/internal/utilities.py in wrapped(*args, **kwargs)
     12         click.echo(f"Running {func.__name__}")
     13         click.echo("-" * 80)
---> 14         result = func(*args, **kwargs)
     15         click.echo("=" * 80)
     16         return result

/storage/work/j/jrm5100/python_venvs/venv_clarite/lib/python3.6/site-packages/clarite/modules/modify.py in categorize(data, cat_min, cat_max, cont_min)
    117                 keep_cont[col] = False
    118                 check_cont[col] = True
--> 119                 data[col] = data.loc[~col.isna(), col].astype(str)
    120 
    121     # Other - Convert non-NA values to string type

AttributeError: 'str' object has no attribute 'isna'
```
diff --git a/clarite/tests/modify/test_modify.py b/clarite/tests/modify/test_modify.py
index 2140df6..91b34d7 100644
--- a/clarite/tests/modify/test_modify.py
+++ b/clarite/tests/modify/test_modify.py
@@ -171,3 +171,18 @@ def test_transform(plantTraits, capfd):
     assert all(result['b'] == [2, 3, 4])
     assert all(result['c'] == [True, False, True])
     return
+
+
+def test_categorize_many_string():
+    """
+    Ensure an error isn't thrown when attempting to make a string column continuous
+    """
+    df = pd.DataFrame({
+        'a': range(100),
+        'b': range(100),
+        'c': [str(n)+"ABC" for n in range(100)]})
+    categorized = modify.categorize(df)
+    # Dtypes and data shouldn't have actually changed.  'c' will remain an 'unknown' type.
+    assert (categorized.dtypes == df.dtypes).all()
+    assert (categorized == df).all().all()
+    return

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.9
requirements/requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/HallLab/clarite-python.git@104b2349a625814fc801b5122e6b8f7678f564ce#egg=clarite
click==8.1.8
contourpy==1.3.0
cycler==0.12.1
exceptiongroup==1.2.2
fonttools==4.56.0
importlib_resources==6.5.2
iniconfig==2.1.0
kiwisolver==1.4.7
matplotlib==3.9.4
numpy==2.0.2
packaging==24.2
pandas==2.2.3
patsy==1.0.1
pillow==11.1.0
pluggy==1.5.0
pyparsing==3.2.3
pytest==8.3.5
python-dateutil==2.9.0.post0
pytz==2025.2
scipy==1.13.1
seaborn==0.13.2
six==1.17.0
statsmodels==0.14.4
tomli==2.2.1
tzdata==2025.2
zipp==3.21.0

name: clarite-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - click==8.1.8
      - contourpy==1.3.0
      - cycler==0.12.1
      - exceptiongroup==1.2.2
      - fonttools==4.56.0
      - importlib-resources==6.5.2
      - iniconfig==2.1.0
      - kiwisolver==1.4.7
      - matplotlib==3.9.4
      - numpy==2.0.2
      - packaging==24.2
      - pandas==2.2.3
      - patsy==1.0.1
      - pillow==11.1.0
      - pluggy==1.5.0
      - pyparsing==3.2.3
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - scipy==1.13.1
      - seaborn==0.13.2
      - six==1.17.0
      - statsmodels==0.14.4
      - tomli==2.2.1
      - tzdata==2025.2
      - zipp==3.21.0
prefix: /opt/conda/envs/clarite-python

clarite/tests/modify/test_modify.py::test_categorize_many_string
clarite/tests/modify/test_modify.py::test_make_binary clarite/tests/modify/test_modify.py::test_make_categorical clarite/tests/modify/test_modify.py::test_make_continuous clarite/tests/modify/test_modify.py::test_merge clarite/tests/modify/test_modify.py::test_colfilter_percent_zero clarite/tests/modify/test_modify.py::test_colfilter_min_n clarite/tests/modify/test_modify.py::test_colfilter_min_cat_n clarite/tests/modify/test_modify.py::test_rowfilter_incomplete_obs clarite/tests/modify/test_modify.py::test_recode_values clarite/tests/modify/test_modify.py::test_remove_outliers clarite/tests/modify/test_modify.py::test_categorize clarite/tests/modify/test_modify.py::test_transform
clarite/modules/modify.py
clarite/modules/modify.py