2015-07-24 8 views
20

In questions und answers Anwender sehr oft schreiben ein Beispiel DataFrame, die ihre Frage/Antwort arbeitet mit/Paste Datenframe kopieren:Wie aus Stackoverflow in Python

In []: x 
Out[]: 
    bar foo 
0 4 1 
1 5 2 
2 6 3 

Es wäre wirklich nützlich, um der Lage sein, Holen Sie sich diese DataFrame in meinen Python-Interpreter, damit ich die Frage debuggen oder die Antwort testen kann.

Wie kann ich das tun?

Antwort

23

Pandas wird von Menschen geschrieben, die wirklich wissen, was Menschen tun wollen.

Since version 0.13 gibt es eine Funktion pd.read_clipboard, die absurd effektiv bei der Herstellung dieser "nur Arbeit" ist.

Kopieren und den Teil des Codes in der Frage einfügen, die bar foo beginnt, (dh der Datenrahmen) und dieser Interpreter in einem Python tun:

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

  • nicht Sie enthalten das iPython In oder Out Zeug oder es wird nicht funktionieren
  • Wenn Sie einen benannten Index haben, müssen Sie derzeit hinzufügen engine='python' (siehe this issue auf GitHub). Die 'c' Engine ist derzeit defekt, wenn der Index benannt wird.
  • Es ist nicht brillant bei 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 

, die überhaupt nicht funktioniert, oder dies:

   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 

Welche arbeitet, kehrt aber etwas völlig falsch!

+0

Beachten Sie, dass der dtype 'object' ist, dh' str', also müssen Sie möglicherweise 'df = df.convert_objects (convert_numeric = True)' – EdChum

+0

Das scheint bei diesem speziellen Beispiel nicht der Fall zu sein eins im OP). Es ist eine gute Sache, auf die man aber achten sollte. – LondonRob

+0

Hmm, das habe ich definitiv schon mal beobachtet, aber du hast Recht, das funktioniert richtig – EdChum