no columns to parse from file
Using try and except just lets you continue in spite of errors and handle them. It won't 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 can't really tell, delim_whitespace seems to be the better option.
If this doesn't 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.