Code Sample, a copy-pastable example if possible
pd.DataFrame({"col1": ["NA"], "col2": ["NA"]}).to_csv("test.csv", index=False, header=None)
output = pd.read_csv("test.csv", header=None, names=["iso2", "region"], index_col="iso2", na_filter=False)
print(output)
Problem description
Reading the file, "test.csv", with na_filter set to false, causes a "NA" to be read as a nan when that column is converted into the index. Reading the file without index_col and then converting works.
Expected Output
The index should contain the string "NA", not the float nan.
Output of pd.show_versions()
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.2.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
pandas: 0.20.3
pytest: 3.2.3
pip: 9.0.1
setuptools: 36.5.0
Cython: None
numpy: 1.13.1
scipy: 1.0.0b1
xarray: None
IPython: None
sphinx: None
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.0.2
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.6.0
html5lib: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: None
s3fs: None
pandas_gbq: None
pandas_datareader: None
Comment From: TomAugspurger
Looks like a duplicate of https://github.com/pandas-dev/pandas/issues/5239. https://github.com/pandas-dev/pandas/pull/18127 is fixing it, and will be merged shortly.