kilka prostych danych, aby nas zaczęło:Jak używać zmiennej utworzonej w samej funkcji przypisać z pand
import pandas as pd
import numpy as np
df = pd.DataFrame({"x": np.random.normal(size=100), "y": np.random.normal(size=100)})
Więc, aż do tego momentu, zawsze myślałem, że assign
był odpowiednikiem mutate
w bibliotece dplyr
. Jednak jeśli spróbuję użyć zmiennej, którą utworzyłem w kroku assign
w tym samym kroku assign
, pojawia się błąd. Rozważmy następujące dane, które jest dopuszczalne w R:
df %>%
mutate(z = x * y, w = z + 10)
Gdy próbuję równowartość w pandas
, otrzymuję błąd:
df.assign(z = df.x * df.y, w = z + 10) # Error
df.assign(z = df.x * df.y, w = lambda d: d.z + 10) # Error
Jedynym sposobem mogę myśleć, aby to zrobić jest użycie dwa kroki: assign
:
df.assign(z = df.x * df.y).assign(w = lambda d: d.z + 10)
Czy jest coś, co przeoczyłem? Czy jest jeszcze inna funkcja, która jest bardziej odpowiednia?
Ah to naprawdę dobra alternatywa, +1 – miradulo
@Mitch, dziękuję! – MaxU
Nie wiedziałem, że możesz wykonywać wielorakie zło, jak to, bardzo interesujące. – miradulo