Rückgabe der Funktion, die den Pandas-Datenrahmen als Parameter verwendet

DataSwede

Ich habe einen Pandas-Datenrahmen, der aussieht wie:

d = {'some_col' : ['A', 'B', 'C', 'D', 'E'],
     'alert_status' : [1, 2, 0, 0, 5]}
df = pd.DataFrame(d)

Nicht wenige Aufgaben in meinem Job erfordern die gleichen Aufgaben bei Pandas. Ich fange an, standardisierte Funktionen zu schreiben, die einen Datenrahmen als Parameter verwenden und etwas zurückgeben. Hier ist eine einfache:

def alert_read_text(df, alert_status=None):
    if (alert_status is None):
        print 'Warning: A column name with the alerts must be specified'
    alert_read_criteria = df[alert_status] >= 1
    df[alert_status].loc[alert_read_criteria] = 1
    alert_status_dict = {0 : 'Not Read',
                         1 : 'Read'}
    df[alert_status] = df[alert_status].map(alert_status_dict)
    return df[alert_status]

Ich möchte, dass die Funktion eine Reihe zurückgibt. Auf diese Weise könnte man einem vorhandenen Datenrahmen eine Spalte hinzufügen:

df['alert_status_text'] = alert_read_text(df, alert_status='alert_status')

Derzeit gibt diese Funktion jedoch eine Reihe korrekt zurück, ändert jedoch auch die vorhandene Spalte. Wie schaffen Sie es, dass die übergebene ursprüngliche Spalte nicht geändert wird?

EdChum

Da Sie festgestellt haben, dass der übergebene Datenrahmen geändert wird, wenn Parameter als Referenz übergeben werden, gilt dies für Python und hat nichts mit Pandas als solchen zu tun.

Wenn Sie den übergebenen df nicht ändern möchten, erstellen Sie eine Kopie:

def alert_read_text(df, alert_status=None):
    if (alert_status is None):
        print 'Warning: A column name with the alerts must be specified'
    copy = df.copy()
    alert_read_criteria = copy[alert_status] >= 1
    copy[alert_status].loc[alert_read_criteria] = 1
    alert_status_dict = {0 : 'Not Read',
                         1 : 'Read'}
    copy[alert_status] = copy[alert_status].map(alert_status_dict)
    return copy[alert_status]

Siehe auch verwandte Themen : Pandas-Datenrahmen, nach Wert kopieren

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Übergeben Sie die Rückgabe (und den Aufruf) der Funktion direkt als weiteren Parameter direkt in C

Python - Definiert eine Funktion, die den Datenrahmen als Eingabe verwendet

Ruft den Wert der Aufzählung ab, die ich als Parameter in meiner Funktion verwendet habe

Refactoring der Python-Funktion, die Pandas-Datenrahmen verwendet

Java verwendet die Funktion als Parameter und kümmert sich nur um den Rückgabewert davon

Regex: Suchen Sie die Eigenschaft, die für den ersten Parameter der Funktion verwendet wird

Ein Bitfeld als Parameter und als Rückgabe der Funktion

Beibehaltung der Typensignatur bei Rückgabe einer Funktion, die als Parameter angegeben wurde

Aufrufen einer Funktion, die Rückrufe als Parameter in Java verwendet

Funktion, die Funktionen als Parameter verwendet

Wie verbinde ich den Typ mit der Zahl als Parameter für die Funktion?

Der Konstruktor verwendet den Nullwert als Parameter

Der als nicht null angegebene Parameter ist null, wenn Mokito anyObject () für die Kotlin-Funktion verwendet wird

Verwenden Sie den Iterator als Parameter für die Funktion

Die Lambda-Funktion verwendet ihren Parameter als Vorlagenparameter, der die Vorlagenfunktion aufruft

Pandas iterieren die Funktion durch den Datenrahmen

Übergeben Sie die Zeichenfolge als Argument in der Funktion, die in einer anderen Funktion in R verwendet werden soll

So füllen Sie den Pandas-Datenrahmen als Funktion des Index und der Spalten

Kann ich eine parametrisierte Funktion in systemverilog synthetisieren, bei der die Struktur als Parameter verwendet wird?

Schreiben Sie eine Funktion, die als Parameter einen Zeiger auf eine der Funktionen verwendet

Rückgabe einer Funktion, die eine in der übergeordneten Funktion deklarierte Variable verwendet

Verwenden Sie scale_x_continuous mit der Labeller-Funktion, die neben Datenunterbrechungen auch einen Datenrahmen als Argument verwendet

Hinzufügen einer Spalte zu einem Datenrahmen, der das Ergebnis einer Funktion ist, die mehrere Spalten - zeilenweise - als Eingabevektoren verwendet

Übergabe der Funktion mit Parameter als Parameter und Rückgabe eines generischen Typs

Wie übergebe ich ein Wörterbuch als Parameter und entpacke es dann als Variablen in der Funktion, die es verwendet?

So konvertieren Sie einen String, der "\ r \ n" als Zeilenumbruch verwendet, in einen Pandas-Datenrahmen

Python verwendet jedes Element in ndarray als Parameter für die Lambda-Funktion

Wrapper-Funktion für sed, die Regex-Such-/Ersetzungsstring als Parameter verwendet

So erstellen Sie eine R-Funktion, die einen FUN als Parameter verwendet

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv