Search code examples
pandascsvseparator

pandas reading CSV data formatted with comma for thousands separator


I am trying to create a dataframe in pandas using a CSV that is semicolon-delimited, and uses commas for the thousands separator on numeric data. Is there a way to read this in so that the type of the column is float and not string?


Solution

  • Pass param thousands=',' to read_csv to read those values as thousands:

    In [27]:
    import pandas as pd
    import io
    
    t="""id;value
    0;123,123
    1;221,323,330
    2;32,001"""
    pd.read_csv(io.StringIO(t), thousands=r',', sep=';')
    
    Out[27]:
       id      value
    0   0     123123
    1   1  221323330
    2   2      32001