[Solved] parsing empty file with no columns

I have a function that reads a text file and then parses it into a data frame.

Usually the input file will be something like this:

A   B   M
1   2   100
2   1   20

I would like to be able to parse a text file containing nothing, and return an empty data frame but it doesn’t allow me to do that and has an error on the line reading the file using python pandas. Is there other way to do it?

import pandas as pd

def read_data(file):
    df = pd.read_csv(file, delim_whitespace=True)
    return df

ERROR:

pandas.io.common.EmptyDataError: No columns to parse from file
Enquirer: iteong

||

Solution #1:

There are ways you can validate that a file is empty or formatted incorrectly. However, you can also just catch the exception and return an empty data frame.

from pandas.io.common import EmptyDataError

def read_data(file):
    try:
        df = pd.read_csv(file, delim_whitespace=True)
    except EmptyDataError:
        df = pd.DataFrame()

    return df
Respondent: Soviut

Solution #2:

Just eat the exception and make an empty df:

def read_data(file):
    try:
        df = pd.read_csv(file, delim_whitespace=True)
    except pandas.io.common.EmptyDataError:
        df = pd.DataFrame()

    return df
Respondent: aghast

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.