Ich habe eine wunderbare Lambda-Funktion von einem Benutzer vor einer Weile erhalten.Lambda-Funktion Notation in Pandas
actresses_modified['Winner_Count'] = actresses_modified.apply(lambda x: actresses_modified.Name.value_counts()[x.Name], axis=1)
Der Datenrahmen, auf den er wie folgt aussieht angewendet wird:
Year Award Winner Name
2 1928 Best Actress 0.0 Louise Dresser
3 1928 Best Actress 1.0 Janet Gaynor
4 1928 Best Actress 0.0 Gloria Swanson
40 1929 Best Actress 0.0 Ruth Chatterton
41 1929 Best Actress 0.0 Betty Compson
Das Problem ist, habe ich vergessen, wie es funktioniert (ich hatte dieses „for fun“ Projekt Schritt weg) und Genauer gesagt, was genau passiert mit [x.Name]
.
Die Zeile actresses_modified.Name.value_counts()
von mir selbst gibt mir die Anzahl aller Schauspielerin Namen im Datenrahmen. Was bedeutet [x.Name] auf Englisch, wie schafft es es, alle 1en neben dem Namen jeder Person in der Spalte "Winner" des Datenrahmens zusammenzufassen und eine korrekte Anzahl der Gewinne zurückzugeben? Genauso wichtig ist, dass diese Art von Syntax einen Namen hat? Meine Google-Suche ergab nada.
Irgendwelche Gedanken würden geschätzt werden?
Ich möchte nicht sicher sagen, wie ich gerade jetzt in Pandas und numpy, aber es sieht aus wie Lambda wird auf jedes Element im Datenrahmen angewendet und es ruft die 'value_counts' Methode und holt dann jede Schauspielerin aus dem Dataframe mit ihrem Namen (' x.Name'). Wenn 'value_counts' also die Daten nicht speichert, klingt es so, als würde es jedes Mal unnötige Arbeit verrichten. Macht das Sinn für dich? Ich habe vielleicht keine Erfahrung damit, aber ich bin mir sicher, 95% sind sicher, dass das passiert. –