Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
W programowaniu możesz spotkać się z sytuacjami, w których zmienna nie ma wartości. Te instancje są zwykle reprezentowane przez specjalną wartość znaną jako null. Wiele języków programowania, takich jak C, Java, JavaScript i PHP, ma wbudowane wartości puste, ale Python ma nieco inne podejście do reprezentowania zmiennych pustych.
W Pythonie odpowiednikiem wartości null jest None. Jest to specjalna stała w Pythonie, która reprezentuje brak wartości lub wartość pustą. Jest to instancja własnego typu danych — NoneType. To nie to samo, co 0, Fałsz lub pusty ciąg, ponieważ jest to własny typ danych, który nie reprezentuje żadnej wartości ani żadnego obiektu.
Jeśli uczysz się Pythona, ważne jest zrozumienie koncepcji None w Pythonie. Zapewnia środki do tworzenia wydajnego kodu obsługującego skrajne przypadki. Podczas poznawania programowania w języku Python natkniesz się na różne scenariusze, w których żadne nie okaże się niezbędne.
W tym artykule przyjrzymy się, czym jest zero lub brak w Pythonie. Omówimy przykłady i przypadki użycia, aby pomóc Ci utrwalić koncepcję wartości pustych. Ale najpierw zrozumiemy koncepcję wartości None lub Null w Pythonie.
Spis treści
Co to jest Null w Pythonie?
Aby zrozumieć wartość null w Pythonie, musisz zrozumieć następujące dwie koncepcje:
Różnica między Brak i Null
Brak typu
1. Różnica między brakiem a zerem
Null w wielu językach programowania jest używany do oznaczenia pustego wskaźnika lub nieznanej wartości. W tych językach można zdefiniować wartość null jako 0.
Jednak w Pythonie zamiast null używasz słowa kluczowego None do definiowania pustych obiektów i zmiennych. Żaden nie służy niektórym z tych samych celów, co null w innych językach. Ale jest to odrębna jednostka i nie jest zdefiniowana jako 0 ani żadna inna wartość.
2. BrakTyp
W Pythonie None jest unikalnym rodzajem struktury danych, sklasyfikowanym w typie o nazwie NoneType. Jest obywatelem pierwszej klasy, co oznacza, że można go przypisać do zmiennych. Możesz również przekazać go jako argument i zwrócić jako wynik.
Po przypisaniu zmiennej wartości None staje się ona obiektem typu NoneType. Brak nie jest odpowiednikiem pustego łańcucha, wartości logicznej Fałsz lub wartości liczbowej 0. Oznacza po prostu zmienną null lub nic.
Teraz, gdy rozumiesz terminologię związaną z none, przejdźmy dalej i zobaczmy, jak możesz użyć None w różnych przypadkach użycia!
Jak używać None w Pythonie
W Pythonie możesz użyć None dla wielu przypadków użycia. W tej sekcji przyjrzymy się 4 ważnym przypadkom użycia None w Pythonie.
W szczególności przyjrzymy się następującym przypadkom użycia:
Przypisywanie Brak do zmiennych
Użycie opcji Brak jako parametru domyślnego
Sprawdzanie Brak za pomocą operatora tożsamości
Obsługa brakujących wartości
Wejdźmy w to!
1. Brak przypisania do zmiennych
Możesz przypisać Brak do zmiennych, aby wskazać brak wartości.
Na przykład:
x = None
Brak oznacza tutaj, że wartość x jest nieobecna lub nie została jeszcze ustalona poprawna wartość.
2. Używanie opcji Brak jako parametru domyślnego
Możesz użyć opcji Brak jako domyślnej wartości parametru również do definiowania funkcji. Jest to przydatne, gdy chcesz zezwolić na opcjonalne argumenty dla parametrów domyślnych w swoich funkcjach.
Poniższy kod pokazuje, jak używać None jako parametru domyślnego:
def greet(name=None):
if name is None:
print("Hello, World!")
else:
print(f"Hello, {name}!")
# Call the function without providing a name
greet()
# Call the function with a name
greet("Alice")
Po uruchomieniu tego kodu drukuje „Hello, World!” kiedy wywołujesz greet() bez żadnego argumentu. Ale kiedy wywołujesz greet() z argumentem, takim jak greet("Alicja"), wypisuje "Cześć, Alicja!". Dzięki temu funkcja może mieć opcjonalne argumenty.
3. Sprawdzanie braku za pomocą operatora tożsamości
Możesz użyć operatora tożsamości , aby sprawdzić, czy zmienna ma wartość Brak. Pozwala to porównać, czy dwie zmienne odnoszą się do tego samego obiektu.
Poniższy przykład pokazuje, jak używać operatora tożsamości:
# Define a variable with no value
var1 = None
# Define a variable with a value
var2 = "Hello, World!"
# Check if var1 is None
if var1 is None:
print("var1 is None")
else:
print("var1 is not None")
# Check if var2 is None
if var2 is None:
print("var2 is None")
else:
print("var2 is not None")
W tym kodzie var1 to None zwróci True, ponieważ var1 ma przypisaną wartość None. Z drugiej strony, var2 to None zwróci False, ponieważ var2 ma wartość ciągu.
Dane wyjściowe skryptu podano poniżej:
4. Obsługa brakujących wartości
Możesz również napotkać dane z brakującymi wartościami. Możesz reprezentować te brakujące wartości za pomocą None i odpowiednio je obsługiwać.
Poniżej znajduje się przykład, gdy mamy do czynienia z listą liczb:
# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]
def calculate_average(data):
# Filter out None values using list comprehension
valid_data = [value for value in data if value is not None]
# Calculate average if valid_data is not empty
average = sum(valid_data) / len(valid_data) if valid_data else None
return average
# Call the function and print the result
print(calculate_average(data))
Ta funkcja oblicza sumę wszystkich wartości innych niż Brak na liście i dzieli ją przez liczbę wartości innych niż Brak. Jeśli wszystkie wartości na liście to Brak, funkcja zwraca Brak.
Dane wyjściowe podano poniżej:
Używając None i różnych technik wymienionych powyżej, możesz skutecznie radzić sobie z brakującymi wartościami w Pythonie.
Aby dowiedzieć się więcej o obsłudze brakujących wartości w Pythonie, obejrzyj poniższy film:
Więcej przypadków użycia braku w Pythonie
Oprócz przypadków użycia omówionych w powyższej sekcji, istnieją również inne przypadki użycia None. Te przypadki użycia nie są często używane, ale warto je znać i są przydatne w niektórych scenariuszach.
W tej sekcji przyjrzymy się 3 następującym przypadkom użycia None w Pythonie:
Używanie None w instrukcjach return
Używanie None jako flag
Używanie Brak dla obiektów niestandardowych
Zagłębmy się w to!
1. Używanie braku jako deklaracji zwrotu
Możesz użyć None w instrukcjach return, szczególnie gdy funkcja kończy swoje wykonanie bez znalezienia określonego wyniku.
Na przykład funkcja wyszukująca element na liście może zwrócić Brak, jeśli element nie zostanie znaleziony. Poniższy kod demonstruje użycie None jako wartości zwracanej:
# Define a list
numbers = [10, 20, 30, 40, 50]
def find_in_list(lst, target):
for i, value in enumerate(lst):
if value == target:
return i
return None
# Search for a number in the list
print(find_in_list(numbers, 30))
print(find_in_list(numbers, 60))
W tym kodzie funkcja find_in_list iteruje po liście wejściowej lst . Jeśli znajdzie wartość docelową, zwraca indeks tej wartości. Jeśli nie znajdzie wartości docelowej po sprawdzeniu całej listy, zwraca Brak.
Dane wyjściowe podano poniżej:
2. Używanie żadnych jako flag
Możesz także użyć None jako flagi, aby wskazać stan zmiennej. Na przykład możesz użyć go do oznaczenia, czy wartość jest niezainicjowana, lub do śledzenia specjalnego warunku w programie.
Poniżej znajduje się przykład użycia opcji None jako flagi:
def find_first_even_number(numbers):
# Initialize the first_even_number to None
first_even_number = None
# Iterate over the list of numbers
for number in numbers:
# If we find an even number and first_even_number is still None
if number % 2 == 0 and first_even_number is None:
first_even_number = number
break
return first_even_number
numbers = [1, 3, 5, 7, 8, 10]
# Call the function and print the result
print(find_first_even_number(numbers)) # Outputs: 8
W tym kodzie Brak jest używany jako flaga wskazująca, że nie znaleźliśmy jeszcze liczby parzystej na liście.
Jeśli pierwsza_liczba_parzysta nadal ma wartość Brak po zakończeniu pętli , oznacza to, że na liście nie było liczb parzystych.
If first_even_number is not None, it contains the first even number from the list.
3. Using None for Custom Objects
You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.
The following example demonstrates how you can use None for user-defined objects:
class Person:
def __init__(self, name):
self.name = name
self.best_friend = None
def set_best_friend(self, person):
self.best_friend = person
def get_best_friend_name(self):
if self.best_friend is not None:
return self.best_friend.name
else:
return None
# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')
# Alice's best friend is Bob
alice.set_best_friend(bob)
print(alice.get_best_friend_name())
# Charlie doesn't have a best friend
charlie = Person('Charlie')
print(charlie.get_best_friend_name())
In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.
The above code will output the following:
Special Functions and Techniques for Null Object
Omówimy teraz niektóre specjalne funkcje i techniki, których można użyć w odniesieniu do typu NoneType i obsługi wartości null. Omówimy dwie główne podsekcje:
Funkcja identyfikatora
Funkcja Getattr
1. Funkcja identyfikatora
Funkcja id() w Pythonie jest wbudowaną funkcją , która zwraca tożsamość obiektu. Tożsamość ta jest unikalną i stałą liczbą całkowitą przypisaną do obiektu w czasie jego życia.
Pozwala to rozróżnić obiekty o różnych adresach pamięci. Funkcja jest szczególnie przydatna podczas pracy z obiektami typu NoneType, ponieważ można jej użyć do sprawdzenia obecności wartości None w zmiennych lub wyrażeniach.
Poniżej znajduje się przykład użycia funkcji id() :
a = None
b = None
c = 42
print(id(a)) # Output: some unique integer representing None
print(id(b)) # Output: same integer as id(a)
print(id(c)) # Output: different integer from id(a) and id(b)
Dane wyjściowe tego kodu podano poniżej:
Ponieważ None jest obywatelem pierwszej klasy w Pythonie, ma swoją własną unikalną tożsamość. Oznacza to, że możesz użyć funkcji id() do porównania zmiennych z None przy użyciu ich tożsamości:
if id(a) == id(None):
print("a is None")
Dane wyjściowe podano poniżej:
2. Funkcja Getattr
Funkcja getattr() to kolejna wbudowana funkcja Pythona, która umożliwia dostęp do atrybutów obiektu według nazwy.
Biorąc pod uwagę obiekt i łańcuch, getattr() zwraca wartość nazwanego atrybutu lub obiektu None, jeśli atrybut nie istnieje.
Może to być przydatne podczas obsługi wartości pustych, zwłaszcza w przypadkach, gdy potrzebny jest dostęp do atrybutów, których może brakować.
Poniżej znajduje się przykład użycia funkcji getattr() :
class ExampleClass:
def __init__(self, x, y):
self.x = x
self.y = y
example_obj = ExampleClass(3, 4)
# Access attribute using getattr
print(getattr(example_obj, "x")) # Output: 3
print(getattr(example_obj, "z", None)) # Output: None
W powyższym przykładzie używamy getattr() w celu uzyskania dostępu do atrybutu x i próby uzyskania dostępu do nieistniejącego atrybutu z.
Podając domyślną wartość None, zapobiegamy AttributeError i zamiast tego otrzymujemy obiekt None.
W rezultacie funkcja ta pozwala na bezpieczny dostęp do atrybutów nawet w przypadku obecności pustych obiektów lub brakujących atrybutów.
Dane wyjściowe tego kodu podano poniżej:
Porównanie Null w innych językach programowania
Na początku tego artykułu dokonaliśmy krótkiego porównania Null w Pythonie i Null w innych językach programowania.
W tej sekcji zajmiemy się tym tematem i porównamy Null w innych popularnych językach programowania z Null w Pythonie. Pomoże ci to lepiej zrozumieć koncepcję None w Pythonie, jeśli pochodzisz z innego środowiska programistycznego.
Wejdźmy w to!
1. Null w Javie
W Javie słowo kluczowe „null” reprezentuje odwołanie, które nie wskazuje na żaden obiekt ani wartość. Służy do wskazania braku wartości i jest często używana jako wartość domyślna dla odniesień do obiektów.
Na przykład:
String myString = null; // Declare a String object with a null reference
Null w Javie różni się od None w Pythonie. Null reprezentuje brak obiektu, podczas gdy None jest rzeczywistym obiektem typu NoneType.
2. Zero w C
W języku programowania C wartość null jest reprezentowana przez wskaźnik zerowy, który wskazuje na niezainicjowany lub pusty wskaźnik. Wskaźnik zerowy jest często reprezentowany przez liczbę całkowitą 0.
Poniżej znajduje się przykład użycia wskaźnika zerowego w C:
int *myPointer = NULL; // Declare an integer pointer with a null reference
Null w C nie jest powiązany z określonym typem danych. Służy jako element zastępczy dla niezainicjowanych lub pustych wskaźników.
3. Null w PHP
W PHP null reprezentuje zmienną bez wartości lub bez odniesienia. Podobnie jak w innych językach, null służy do oznaczania niezainicjowanych lub pustych zmiennych.
Poniżej znajduje się przykład Null w PHP:
$myVar = NULL; // Declare a variable with a null reference
Wartość null PHP nie jest obiektem określonego typu danych, ale raczej specjalną stałą, która reprezentuje brak wartości.
Końcowe przemyślenia
W Twojej podróży jako programisty Pythona poznanie wartości None ma duże znaczenie. Jest to unikalna funkcja, która służy jako sposób Pythona na powiedzenie „nic tu nie ma”.
Jest to niezbędne do reprezentowania braku wartości. Rozumiejąc i poprawnie używając Brak, możesz tworzyć bardziej elastyczne funkcje z opcjonalnymi argumentami i skutecznie obsługiwać brakujące dane.
Ponadto wartości None pozwalają funkcjom na wyraźną komunikację, gdy czegoś brakuje lub gdy warunek nie został spełniony. Co więcej, zrozumienie None jest kluczowe, gdy mamy do czynienia z bazami danych, obiektami zdefiniowanymi przez użytkownika lub gdy trzeba zainicjować zmienne.
W tym przewodniku dotyczącym wartości None w języku Python pokazano niektóre ważne scenariusze, w których będziesz chciał użyć obiektu None w swoim kodzie.
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.