[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
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
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
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 .