2017-04-04 4 views
1

Ich habe eine Funktion, die eine Textdatei liest und analysiert es dann in einen Datenrahmen.Parsing leere Datei ohne Spalten

Normalerweise sind die Eingabedatei wird in etwa so sein:

A B M 
1 2 100 
2 1 20 

Ich mag wäre in der Lage sein, eine Textdatei mit nichts zu analysieren, und das Rück einen leeren Datenrahmen, aber es erlaubt mir nicht zu tun und hat einen Fehler in der Zeile, die die Datei mit Python Pandas liest. Gibt es einen anderen Weg, es zu tun?

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 
+0

Was haben Sie bisher versucht? Bitte zeigen Sie Ihre Arbeit. – Soviut

Antwort

2

Es gibt Möglichkeiten, die Sie bestätigen können, dass eine Datei nicht richtig leer oder formatiert ist. Sie können aber auch einfach catch the exception und einen leeren Datenrahmen zurückgeben.

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 
3

einfach die Ausnahme essen und eine leere df machen:

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

    return df