How to copy/paste DataFrame from Stack Overflow into Python

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 In or Out stuff 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!

Leave a Comment