Pandas is written by people that really know what people want to do.
Since version 0.13 there’s a function pd.read_clipboard which is absurdly effective at making this “just work”.
Copy and paste the part of the code in the question that starts bar foo, (i.e. the DataFrame) and do this in a Python interpreter:
In [53]: import pandas as pd
In [54]: df = pd.read_clipboard()
In [55]: df
Out[55]:
bar foo
0 4 1
1 5 2
2 6 3
Caveats
- Don’t include the iPython
InorOutstuff or it won’t work - If you have a named index, you currently need to add
engine="python"(see this issue on GitHub). The ‘c’ engine is currently broken when the index is named. - It’s not brilliant at MultiIndexes:
Try this:
0 1 2
level1 level2
foo a 0.518444 0.239354 0.364764
b 0.377863 0.912586 0.760612
bar a 0.086825 0.118280 0.592211
which doesn’t work at all, or this:
0 1 2
foo a 0.859630 0.399901 0.052504
b 0.231838 0.863228 0.017451
bar a 0.422231 0.307960 0.801993
Which works, but returns something totally incorrect!