Wenn ichVerwenden String-Variable in Python Datenrahmen Funktion
df.loc[(origFull['abc'] == 111)]
wird es natürlich arbeiten.
Dann
test = '(origFull[\'abc\'] == 111)'
df.loc[@test]
oder
df.loc['@test']
Weder gearbeitet.
Wenn ichVerwenden String-Variable in Python Datenrahmen Funktion
df.loc[(origFull['abc'] == 111)]
wird es natürlich arbeiten.
Dann
test = '(origFull[\'abc\'] == 111)'
df.loc[@test]
oder
df.loc['@test']
Weder gearbeitet.
Ein paar Dinge sind falsch:
1: Sie möchten Test ein Wert (ein boolescher Wert um genau zu sein), Wenn Sie um sie herum einfache Anführungszeichen hinzufügten, wird aus test
eine Zeichenfolge. Tun Sie dies statt:
test = origFull['abc'] == 111
2: @
Symbol nicht gültig Syntax für Python ist, ausgenommen wenn es für Dekorateure verwendet wird. Um den Test als Variable zu verwenden, schreiben Sie einfach test
ohne die @
.
df.loc[test]
Nehmen Sie die Zitate weg, wenn Sie Test definieren.
Innerhalb von Loc erstellen Sie im Wesentlichen eine boolesche Variable. So setzen Test gleich dem boolean und verwenden Sie es als Booleschen Index:
test = (origFull['abc'] == 111)
df.loc[test]
Es funktioniert nach dem Entfernen der hinteren Schrägstrich. Vielen Dank, da Sie der Erste sind, der diese Frage beantwortet und mich in die richtige Richtung gebracht hat! – Windtalker
Ja, tut mir leid, kopiert und eingefügt und verpasst die Backslashes. – Reen
Vielleicht suchen Sie nach der .query()
Methode?
test = "abc == 111"
df.query(test)
in der Tat ist es .loc, aber ich habe die Antwort bekommen. Danke trotzdem – Windtalker
eigentlich will ich Test-Variable, um eine Aussage zu repräsentieren, aber Sie haben Recht, ich brauche kein einzelnes Zitat hinzuzufügen. Vielen Dank! – Windtalker