Pandas Convert 'NA' to NaN

ericmjl picture ericmjl · May 16, 2013 · Viewed 8.4k times · Source

I just picked up Pandas to do with some data analysis work in my biology research. Turns out one of the proteins I'm analyzing is called 'NA'.

I have a matrix with pairwise 'HA, M1, M2, NA, NP...' on the column headers, and the same as "row headers" (for the biologists who might read this, I'm working with influenza).

When I import the data into Pandas directly from a CSV file, it reads the "row headers" as 'HA, M1, M2...' and then NA gets read as NaN. Is there any way to stop this? The column headers are fine - 'HA, M1, M2, NA, NP etc...'

Answer

Dan Allan picture Dan Allan · May 16, 2013

Turn off NaN detection this way: pd.read_csv(filename, keep_default_na=False)

I originally suggested na_filter=False, which gets the job done. But, if I understand Jeff's comments below, this is a cleaner solution.

Example:

In [1]: pd.read_csv('test')
Out[1]:[4]: pd.read_csv('test', keep_default_na=False)
Out[4]:1   2
2   3