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.
Praca z ciągami znaków jest częstym zadaniem w Pythonie. Często musisz dowiedzieć się, czy łańcuch zawiera inny ciąg.
Najprostsze metody sprawdzania, czy ciąg Pythona zawiera podłańcuch, to operator „in”, funkcja find() i metoda index(). Bardziej złożone scenariusze można rozwiązać za pomocą wyrażeń regularnych lub zewnętrznej biblioteki, takiej jak Pandas.
Ten artykuł pokazuje:
cztery proste metody
dwie bardziej złożone funkcje wyrażeń regularnych
metoda wykorzystująca bibliotekę Pandas
Nauczysz się każdej techniki poprzez przykłady ich składni i użycia. Otrzymasz również wskazówki, która metoda jest najlepsza dla różnych wymagań.
Zacznijmy!
Spis treści
Podstawy łańcuchów Pythona
Ciąg znaków w Pythonie to sekwencja znaków używana do reprezentowania danych tekstowych. Mogą zawierać litery, cyfry, symbole i spacje.
Jest to jeden z wbudowanych typów danych Pythona i można go utworzyć za pomocą:
pojedyncze cytaty (' ')
podwójne cudzysłowy („”)
potrójne cudzysłowy (”' ”' lub „”” „””)
Ciągi znaków są indeksowane, co oznacza, że można uzyskać dostęp do określonych znaków, odwołując się do ich numeru indeksu. Początkowy indeks to 0, co oznacza, że pierwszy znak łańcucha ma indeks 0, drugi ma indeks 1 i tak dalej.
Następnie przyjrzymy się sposobom sprawdzania podciągów.
4 najprostsze sposoby sprawdzania podciągów
Python zapewnia wiele sposobów sprawdzania, czy określony podłańcuch istnieje w większym łańcuchu. Niektóre są bardziej złożone niż inne. W przypadku najbardziej podstawowych kontroli najprostszymi metodami są operator in lub jedna z trzech metod łańcuchowych.
w operatorze
metoda find().
metoda index().
metoda count().
1. W Operatorze
Operator „in” w Pythonie to prosty i intuicyjny sposób sprawdzania, czy jeden ciąg istnieje w innym ciągu. Ten operator sprawdza członkostwo i zwraca wartość logiczną:
Prawda, jeśli podłańcuch znajduje się w ciągu głównym
Fałsz, jeśli tak nie jest
Oto przykładowy kod:
s = "Hello, world!"
sub = "world"
result = sub in s
print(result) # Output: True
W operatorze „in” rozróżniana jest wielkość liter. Oznacza to, że traktuje małe i wielkie litery jako różne. Powyższy kod nie znajdzie podciągu „hello”, więc operator zwraca fałsz.
Jeśli chcesz przeprowadzić kontrolę bez uwzględniania wielkości liter, możesz przekonwertować zarówno główny ciąg, jak i podłańcuch na tę samą wielkość liter przed wykonaniem sprawdzenia:
s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result) # Output: True
Wadą operatora in jest to, że nie podaje on pozycji podłańcucha w ciągu głównym. W tym celu potrzebujesz innej metody opisanej w tej sekcji. Czytaj…
2. Metoda Find().
Metoda find() zwraca pierwszy indeks, w którym pojawia się podłańcuch, lub -1 , jeśli podłańcuch nie został znaleziony.
Wywołujesz metodę find() na łańcuchu s , przekazując substring sub jako argument. Oto przykład:
s = "Hello, world!"
sub = "world"
index = s.find(sub)
if index != -1:
print("Found at index:", index) # Output: Found at index: 7
else:
print("Not found")
Opcjonalnie możesz określić indeks początkowy lub końcowy, aby ograniczyć wyszukiwanie. Wadą tej metody jest to, że zatrzymuje się przy pierwszym wystąpieniu.
3. Metoda Index().
Metoda index() jest bardzo podobna do metody find() z tą różnicą, że zgłasza błąd ValueError , gdy podłańcuch nie zostanie znaleziony. Oznacza to, że należy zawinąć wywołanie w sekcję Try/Except.
Aby użyć metody index() , wywołaj ją na ciągu znaków s i przekaż substring sub jako argument.
s = "Hello, world!"
sub = "world"
try:
index = s.index(sub)
print("Found at index:", index) # Output: Found at index: 7
except ValueError:
print("Not found")
Ta metoda zatrzymuje się również na pierwszym podłańcuchu wewnątrz tekstu.
4. Metoda Count().
Metoda .count() zlicza, ile razy podłańcuch występuje w oryginalnym ciągu. Zwraca liczbę całkowitą reprezentującą tę liczbę. Jeśli podciąg nie zostanie znaleziony w ciągu głównym, zwraca 0.
Oto prosty przykład szukania litery „o” w tekście „Witaj, świecie!”:
s = "Hello, world!"
sub = "o"
print(s.count(sub)) # Output:2
2 sposoby dopasowywania ciągów znaków do wyrażeń regularnych
Używanie wyrażeń regularnych (regex) jest nieco bardziej złożone niż metody opisane w poprzedniej sekcji. Dają jednak więcej możliwości wyszukiwania i analizowania tekstu, z którym masz do czynienia.
Dwa z najłatwiejszych sposobów w module re to:
szukaj()
Znajdź wszystko()
1. ponownie.Wyszukaj()
Funkcja search () w module re wyszukuje wzorzec w podanym łańcuchu i zwraca obiekt dopasowania, jeśli zostanie znaleziony. W przeciwnym razie zwraca None .
Domyślnie w funkcji rozróżniana jest wielkość liter. Możesz użyć flagi re.IgnoreCase , aby uniknąć rozróżniania wielkości liter.
Oto prosty przykład użycia instrukcji warunkowych w zależności od tego, czy ciąg zostanie znaleziony:
import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)
if match:
print("Pattern found")
else:
print("Pattern not found")
Należy zauważyć, że ta metoda znajduje pierwsze dopasowanie, a następnie zatrzymuje wyszukiwanie. Jeśli chcesz znaleźć wszystkie dopasowania, następny na tej liście jest dla Ciebie.
2. ponownie.Findall()
Ta metoda wyszukuje wszystkie wystąpienia wzorca wyszukiwania w podanym ciągu i zwraca listę zawierającą wszystkie dopasowania.
W tym przykładzie użyto wzorca, który pasuje do jednej lub więcej cyfr w ciągu. Ciąg tekstowy „123, 456, 789” zawiera trzy ciągi cyfr.
import re
pattern = "d+"
text = "123, 456, 789"
numbers = re.findall(pattern, text)
print(numbers)
Oto odpowiedź z przykładowego kodu: ['123', '456', '789'].
Jak znaleźć podciągi za pomocą pand
Pandas to popularna biblioteka open-source do analizy danych i manipulacji dla Pythona. Zapewnia struktury danych i funkcje potrzebne do manipulowania i analizowania danych strukturalnych.
Jedną z podstawowych struktur danych dostarczanych przez Pandy jest DataFrame. Możesz użyć tej wszechstronnej struktury danych, aby sprawdzić, czy jeden ciąg znaków znajduje się w innym.
Zaletą Pand jest to, że udostępnia pakiety kodu, który trzeba by obszernie pisać w innych językach programowania. W szczególności funkcja zawiera dużo mocy.
str.contains() Funkcja w pandach
Metoda str.contains() sprawdza, czy określony wzorzec lub wyrażenie regularne jest zawarte w ciągu znaków kolumny DataFrame.
Oto przykład, który importuje bibliotekę i wyszukuje ciąg na liście ciągów:
import pandas as pd
# Creating a sample DataFrame
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']}
df = pd.DataFrame(data)
# Searching for substrings in the 'fruits' column
has_an = df['fruits'].str.contains(pat='an', regex=False)
# Filtering the DataFrame based on the search results
filtered_df = df[has_an]
print(filtered_df)
W tym przykładzie wyszukujemy podłańcuch „an” w kolumnie „owoce” i odpowiednio filtrujemy ramkę DataFrame. Wyjście byłoby:
1 banan
4 pomarańcze
Jeśli szukasz więcej przykładów tego, co potrafią Pandy, obejrzyj ten film:
Wskazówki dotyczące wyboru określonej metody w Pythonie
Wybór metody zależy w dużej mierze od specyficznych wymagań Twojego zadania.
Oto cztery powody, dla których warto wybrać jedną z metod, których nauczyłeś się z tego artykułu, oraz jedną dodatkową metodę, której nauczysz się w innym miejscu na tym blogu:
Szybkość przetwarzania
Musisz znać położenie podciągu
Musisz znać liczbę wystąpień podłańcucha
Chcesz dopasować złożone wzorce
Przeprowadzanie analizy tekstu
1. Szybkość przetwarzania
Perator „w” jest najlepszym wyborem, jeśli po prostu chcesz wiedzieć, czy w łańcuchu istnieje podłańcuch.
W tym celu jest prosty, intuicyjny i szybki. Nie dostarcza jednak informacji o lokalizacji ani liczbie podciągów.
2. Lokalizacja podciągu
Użyj metod .find() lub .index() , jeśli chcesz poznać pozycję pierwszego wystąpienia podłańcucha w ciągu.
Oba zwracają indeks pierwszego wystąpienia podłańcucha.
3. Liczba podłańcuchów
Użyj metody .count() , jeśli chcesz wiedzieć, ile razy podłańcuch występuje w łańcuchu.
4. Złożone wzorce
Jeśli potrzebujesz dopasować złożone wzorce lub przeprowadzić wyszukiwanie bez rozróżniania wielkości liter, wyrażenia regularne są najbardziej elastyczne. Funkcja re.search () może obsługiwać wzorce wykraczające poza proste podłańcuchy i może z łatwością wyszukiwać bez rozróżniania wielkości liter.
Jednak wyrażenia regularne mogą być przesadą w przypadku prostych kontroli podciągów, a także mogą być wolniejsze i bardziej skomplikowane w użyciu i utrzymaniu.
5. Przeprowadzanie analizy tekstu
Zapoznaj się z naszym artykułem na temat analizy tekstu w języku Python , który pokazuje, jak pracować z biblioteką textblob.
Możesz użyć funkcji .tags , aby sprawdzić części mowy lub funkcji .ngram , aby znaleźć słowa, które często występują razem w dokumencie.
Końcowe przemyślenia
Nauczyłeś się siedmiu metod sprawdzania, czy słowo lub obiekt typu string jest zawarty w innym. Obejmowały one operatory członkostwa, funkcje wbudowane, wyrażenia regularne i funkcje Pand.
Każda metoda jest poprawna w niektórych sytuacjach, ale nie we wszystkich. Użyj tego artykułu jako ściągawki , gdy opanujesz język programowania Python i użyjesz najlepszego rozwiązania do zadania analizy łańcuchów.
Pamiętaj, że nie ma uniwersalnej metody. Każde podejście ma swoje zalety i dziwactwa, więc możesz wybrać to, które pasuje do Twojego stylu lub konkretnego problemu, który próbujesz rozwiązać. Ostatecznie Python ma na celu ułatwienie Ci życia, więc korzystaj z jego elastyczności!
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.