2017-05-10 13 views
5

W pandas bibliotecznych wielokrotnie istnieje możliwość zmiany inplace obiekt, taki jak z następującym stwierdzeniem ...Python Pandy - Zrozumienie inplace = true

df.dropna(axis='index', how='all', inplace=True) 

Jestem ciekawy, co jest zwracane, jak również w jaki sposób obiekt jest obsługiwany po przekazaniu inplace=True a kiedy inplace=False.

Czy wszystkie operacje modyfikują się self, gdy inplace=True? A kiedy inplace=False jest tworzony nowy obiekt utworzony natychmiast, taki jak new_df = self, a następnie new_df?

+3

Tak, 'inplace = True' zwraca' Brak' 'inplace = False' zwraca kopię obiektu z wykonaną operacją. Dokumenty są dość jasne, czy istnieje coś, co jest mylące z konkretną częścią? Spefically 'If True, wykonaj operację inplace i zwróć None. – EdChum

+1

Poprawnie powiedział .. – Aditya

+0

Podklasy obiektu DataFrame i operacji, takich jak scalanie nie wydaje się możliwe to zrobić w miejscu ... ' self = self.merge (new_df, how = "left", on = 'column2'' Nie jestem pewien, czy możliwe jest ponowne przypisanie siebie –

Odpowiedz

8
  • Kiedy inplace=True są przekazywane dane są przemianowany na miejscu (to nic nie zwraca)
  • Kiedy inlace=False jest przekazywane (jest to wartość domyślna, więc nie jest to konieczne), wykonuje operację i zwraca kopię obiektu
1

Way używam go

# Have to assign back to dataframe as it is a copy 
df = df.some_operation(inplace=False) 

Albo

# No need to assign back to dataframe 
df.some_operation(inplace=True) 
Powiązane problemy