pandas read in csv column as float and set empty cells to 0

后端 未结 3 1210
感情败类
感情败类 2021-01-14 05:30

Is it possible to read in a CSV as a pandas DataFrame and set spaces (or empty cells) to 0 in one line? Below is an illustration of the problem.

Input:

3条回答
  •  清酒与你
    2021-01-14 06:02

    Almost in one line, and might not work in a real case.

    You can set missing values to be mapped to NaN in read_csv

    import pandas as pd
    df = pd.read_csv('data.csv', na_values=" ")
    

    yielding

         a  b    c
    0  NaN  a  0.0
    1  0.0  b  1.0
    2  1.5  c  2.5
    3  2.1  d  3.0
    

    Then, you can run a fillna to change the NaN's to .0.

    Hence, the following line does it all:

    df = pd.read_csv('data.csv', na_values=" ").fillna(0)
    

    gives

         a  b    c
    0  0.0  a  0.0
    1  0.0  b  1.0
    2  1.5  c  2.5
    3  2.1  d  3.0
    

提交回复
热议问题