[Python] Datenrahmen in der VScode-Debug-Konsole anzeigen

Aufgabe

Annahme

Ich mag VScode

Lösungsübersicht (Inhaltsverzeichnis)

Bei VScode

  1. Setzen Sie einen Haltepunkt
  2. Führen Sie den Debug-Modus aus
  3. Verwenden Sie die Debug-Konsole
  4. Fügen Sie der Datei launch.json eine Zeile hinzu, um den Datenrahmen anzuzeigen

Lösungsdetails

Setzen Sie einen Haltepunkt

Bewegen Sie den Mauszeiger links von der Zeilennummer und klicken Sie, um einen roten Kreis hinzuzufügen image.png

Im Debug-Modus ausführen

  1. Klicken Sie auf die fehlerhafte Markierung, um zum Debug-Bildschirm zu gelangen
  2. Klicken Sie zum Debuggen auf die Schaltfläche Ausführen image.png

Verwenden Sie die Debug-Konsole

Gehen Sie zum Debug-Konsolenbildschirm, geben Sie den Variablennamen ein und drücken Sie die Eingabetaste, um verschiedene Dinge zu überprüfen image.png Ich habe Probleme, den Datenrahmen richtig anzuzeigen </ font>

Launch.json wurde eine Zeile hinzugefügt, um den Datenrahmen anzuzeigen

Drücken Sie cmd + Umschalt + P, um die Befehlspalette zu öffnen Geben Sie "launch" ein Klicken Sie auf Open launch.json image.png

Fügen Sie "" redirectOutput ": true" hinzu und speichern Sie durch Überschreiben (vergessen Sie nicht "," am Ende der vorherigen Zeile) image.png

Beenden Sie das Debuggen einmal und starten Sie das Debuggen erneut. Versuchen Sie print (df) in der Debug-Konsole image.png Datenrahmen werden angeordnet und zur einfachen Anzeige angezeigt </ font>

  • Ich weiß nicht, warum das funktioniert. Gugu kam zu ↓ und ahmte es nach. https://github.com/microsoft/ptvsd/issues/2036#issuecomment-573343490

Bonus) Mehrzeilige Verarbeitung in der Debug-Konsole

Sie können auch eine mehrzeilige Verarbeitung mit sht + Enter schreiben image.png

↓ Ausführungsergebnis image.png

Ergänzung

Betriebsumgebung: Mac, Python3.7

Zu debuggender Beispielcode:

# create test data
a = 15

import pandas as pd
df = pd.DataFrame(
    columns = ['name', 'gender', 'age'], 
    data = [
        ['john', 'man', 25],
        ['yoko', 'woman', 28],
        ['kevin', 'man', 45]
    ]
)

# processing
a = a - 1
df['age'] = df['age'] - 10

In der Bonus-Debug-Konsole verwendeter Code:

for age_hosei in [10, -10]:
    print('--------------------------')
    print('age_hosei', age_hosei)

    tmp = df.copy()
    print('tmp:\n', tmp)
    
    tmp['age'] = tmp['age'] + age_hosei
    result = tmp.groupby('gender')['age'].sum()
    print('result:\n', result)

Recommended Posts