Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to prevent "pandas.read_csv" convert index column to float with arg 'dtype=np.float32'?

I have a csv file to be read by pandas, and it has the form as following:

name,   quart2c,    p_rat,  other_col
avg,    1,          2,      3
std,    1,          2,      3

I want to pandas.read_csv() guarantee that all cells have the type of float32, except the first column(‘name’) because that is the index column.

Hence I pass two args to it like this:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

pandas.read_csv(file_path, index_col=0, dtype=np.float32)

# or like this, both failed
pandas.read_csv(file_path, index_col='name', dtype=np.float32)

But pandas still tries to convert the first column to float, and raises a exception:

ValueError: could not convert string to float: ‘avg’

What I want:

  1. The csv file is made by another program coded by myself. If the
    structure is wrong, I can adjust it easily.
  2. I want to always specify the arg dtype=np.float32, so as to check whether
    is there any error values. I don’t want the values be interpreted to
    integer type also.
  3. The index column "name" should be reserved as index_col, since it
    will be used later. This column should NOT be cut off anyway.

How should I get it?
Thanks!

>Solution :

you can try this way with dtype and converters.

import pandas as pd
df = pd.read_csv('test.csv', dtype = 'float32', converters = {'name': str},index_col='name')  
print(df)

Output:

         quart2c      p_rat    other_col
name                                    
avg          1.0        2.0          3.0
std          1.0        2.0          3.0
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading