Python: skip comment lines marked with # in csv.DictReader

前端 未结 4 1613
旧时难觅i
旧时难觅i 2020-12-01 01:35

Processing CSV files with csv.DictReader is great - but I have CSV files with comment lines in (indicated by a hash at the start of a line), for example:

# step s         


        
4条回答
  •  感情败类
    2020-12-01 02:23

    Another way to read a CSV file is using pandas

    Here's a sample code:

    df = pd.read_csv('test.csv',
                     sep=',',     # field separator
                     comment='#', # comment
                     index_col=0, # number or label of index column
                     skipinitialspace=True,
                     skip_blank_lines=True,
                     error_bad_lines=False,
                     warn_bad_lines=True
                     ).sort_index()
    print(df)
    df.fillna('no value', inplace=True) # replace NaN with 'no value'
    print(df)
    

    For this csv file:

    a,b,c,d,e
    1,,16,,55#,,65##77
    8,77,77,,16#86,18#
    #This is a comment
    13,19,25,28,82
    

    we will get this output:

           b   c     d   e
    a                     
    1    NaN  16   NaN  55
    8   77.0  77   NaN  16
    13  19.0  25  28.0  82
               b   c         d   e
    a                             
    1   no value  16  no value  55
    8         77  77  no value  16
    13        19  25        28  82
    

提交回复
热议问题