python – Importing text file : No Columns to parse from file

python – Importing text file : No Columns to parse from file

Using try and except just lets you continue in spite of errors and handle them. It wont magically fix your errors.

read_csv expects csv files, which your input is obviously not. A quick look into the documentation:

delim_whitespace : boolean, default False

Specifies whether or not whitespace (e.g. or ) will be used as the sep. Equivalent to setting sep=+s. If this option is set to True, nothing should be passed in for the delimiter parameter.

This seems like the right argument. Use

pandas.read_csv(filepath_or_buffer, delim_whitespace=True).

Using delimiter=t should also work, unless the tabs are expanded (replaced by spaces). As we cant really tell, delim_whitespace seems to be the better option.

If this doesnt help, just print out your sys.stdin to check if you properly pass the text.

Edit:
I just saw that you use

cat /root/lab/u.data | python /root/lab/mid-1-mapper.py |python /root/lab/mid-1-reducer.py

Is this intended, this way mid-1-reducer.py processes the output of mid-1-mapper.py. If you want to process the content of the file u.data consider reading the file and not sys.stdin.

You have to set delim_whitespace to True, to use whitespaces as the separator.

import sys
import pandas as pd

if __name__ == __main__:
    df = pd.read_csv(sys.stdin, header=None, delim_whitespace=True)
    print df

python – Importing text file : No Columns to parse from file

Leave a Reply

Your email address will not be published.