Vytvoření tabulky data v LuckyTemplates
Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.
Práce s řetězci je v Pythonu běžným úkolem. Často potřebujete zjistit, zda řetězec obsahuje jiný řetězec.
Mezi nejjednodušší metody, jak zkontrolovat, zda řetězec Pythonu obsahuje podřetězec, patří operátor 'in', funkce find() a metoda index(). Složitější scénáře lze řešit regulárními výrazy nebo externí knihovnou, jako je Pandas.
Tento článek vám ukazuje:
čtyři jednoduché metody
dvě složitější funkce regulárních výrazů
metoda využívající knihovnu Pandas
Každou techniku se naučíte na příkladech jejich syntaxe a použití. Získáte také tipy, která metoda je nejlepší pro různé požadavky.
Začněme!
Obsah
Základy Pythonových řetězců
Řetězec v Pythonu je posloupnost znaků, která se používá k reprezentaci textových dat. Mohou obsahovat písmena, číslice, symboly a mezery.
Je to jeden z vestavěných datových typů Pythonu a lze jej vytvořit pomocí:
jednoduché uvozovky (' ')
dvojité uvozovky ("")
trojité uvozovky (“' ”' nebo “”” “””)
Řetězce jsou indexovány, což znamená, že ke konkrétním znakům můžete přistupovat odkazem na jejich indexové číslo. Počáteční index je 0, což znamená, že první znak řetězce má index 0, druhý má index 1 a tak dále.
Dále se podíváme na způsoby, jak zkontrolovat podřetězce.
4 nejjednodušší způsoby kontroly podřetězců
Python poskytuje mnoho způsobů, jak zkontrolovat, zda určitý podřetězec existuje ve větším řetězci. Některé jsou složitější než jiné. Pro nejzákladnější kontroly jsou nejjednoduššími metodami operátor in nebo jedna ze tří řetězcových metod.
v operátorovi
metoda find().
metoda index().
metoda count().
1. V Operátor
Operátor 'in' v Pythonu je jednoduchý a intuitivní způsob, jak zkontrolovat, zda existuje jeden řetězec v jiném řetězci. Tento operátor zkontroluje členství a vrátí booleovskou hodnotu:
True, pokud je podřetězec nalezen v hlavním řetězci
Falešné, pokud není
Zde je nějaký ukázkový kód:
s = "Hello, world!"
sub = "world"
result = sub in s
print(result) # Output: True
Operátor 'in' rozlišuje velká a malá písmena. To znamená, že zachází s malými a velkými písmeny jako s různými. Výše uvedený kód nenajde podřetězec „ahoj“, takže operátor vrátí false.
Pokud chcete provést kontrolu bez ohledu na velikost písmen, můžete před provedením kontroly převést hlavní řetězec i podřetězec na stejná velká a malá písmena:
s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result) # Output: True
Nevýhodou operátoru in je, že neposkytuje pozici podřetězce v rámci hlavního řetězce. K tomu byste potřebovali jinou metodu v této části. Číst dál…
2. Metoda Find().
Metoda find() vrátí první index, na kterém se podřetězec objeví, nebo -1 , pokud podřetězec nebyl nalezen.
Voláte metodu find() na řetězci s a předáte podřetězec sub jako argument. Zde je příklad:
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")
Volitelně můžete zadat počáteční nebo koncový index pro omezení vyhledávání. Nevýhodou této metody je, že se zastaví při prvním výskytu.
3. Metoda Index().
Metoda index() je docela podobná metodě find() s tím rozdílem, že vyvolá chybu ValueError , když podřetězec není nalezen. To znamená, že byste měli hovor zabalit do sekce Try/Except.
Chcete-li použít metodu index() , zavolejte ji na řetězec s a předejte podřetězec 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")
Tato metoda se také zastaví na prvním podřetězci uvnitř textu.
4. Metoda Count().
Metoda .count() počítá, kolikrát se podřetězec vyskytuje v původním řetězci. Vrátí celé číslo představující tento počet. Pokud podřetězec není nalezen v hlavním řetězci, vrátí 0.
Zde je jednoduchý příklad, který hledá písmeno „o“ v textu „Ahoj, světe!“:
s = "Hello, world!"
sub = "o"
print(s.count(sub)) # Output:2
2 způsoby, jak porovnat řetězce s regulárními výrazy
Použití (regex) je trochu složitější než metody v předchozí části. Poskytují vám však více možností pro vyhledávání a analýzu textu, kterým se zabýváte.
Dva z nejjednodušších způsobů v rámci modulu re jsou:
Vyhledávání()
findall()
1. re.Search()
Funkce search () v modulu re hledá vzor v daném řetězci a v případě nalezení shody vrátí objekt shody. V opačném případě vrátí None .
Ve výchozím nastavení funkce rozlišuje malá a velká písmena. Chcete-li se vyhnout rozlišování malých a velkých písmen , můžete použít příznak re.IgnoreCase .
Zde je jednoduchý příklad, který používá podmíněné příkazy na základě toho, zda byl řetězec nalezen:
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")
Všimněte si, že tato metoda najde první shodu a poté zastaví hledání. Pokud chcete najít všechny shody, pak je další na tomto seznamu pro vás.
2. znovu Findall()
Tato metoda najde všechny výskyty vyhledávacího vzoru v daném řetězci a vrátí seznam obsahující všechny shody.
Tento příklad používá vzor, který odpovídá jedné nebo více číslicím v řetězci. Textový řetězec „123, 456, 789“ obsahuje tři sekvence číslic.
import re
pattern = "d+"
text = "123, 456, 789"
numbers = re.findall(pattern, text)
print(numbers)
Toto je odpověď z ukázkového kódu: ['123', '456', '789'].
Jak najít podřetězce s pandami
Pandas je populární open-source knihovna pro analýzu dat a manipulaci s nimi pro Python. Poskytuje datové struktury a funkce potřebné pro manipulaci a analýzu strukturovaných dat.
Jednou z primárních datových struktur poskytovaných Pandas je DataFrame. Tuto všestrannou datovou strukturu můžete použít ke kontrole jednoho řetězce uvnitř druhého.
Výhodou Pandas je, že poskytuje balíčky kódu, které byste museli ve velkém psát v jiných programovacích jazycích. Konkrétně je uvnitř funkce obsahuje spoustu energie.
Funkce str.contains() v Pandas
Metoda str.contains() testuje, zda je zadaný vzor nebo regulární výraz obsažen v řetězci sloupce DataFrame.
Zde je příklad, který importuje knihovnu a hledá řetězec v seznamu řetězců:
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)
V tomto příkladu hledáme podřetězec 'an' ve sloupci 'ovoce' a podle toho filtrujeme DataFrame. Výstup by byl:
1 banán
4 oranžové
Pokud hledáte další příklady toho, co Pandy umí, podívejte se na toto video:
Tipy pro výběr konkrétní metody v Pythonu
Výběr metody závisí do značné míry na konkrétních požadavcích vašeho úkolu.
Zde jsou čtyři důvody, proč si vybrat jednu z metod, které jste se naučili z tohoto článku, plus jedna bonusová metoda, kterou se dozvíte jinde na tomto blogu:
Rychlost zpracování
Musíte znát umístění podřetězce
Musíte znát počet výskytů podřetězce
Chcete sladit složité vzory
Provádění analýzy textu
1. Rychlost zpracování
Operátor 'in' 0 je nejlepší volbou, pokud chcete jednoduše vědět, zda v řetězci existuje podřetězec.
Pro tento účel je to jednoduché, intuitivní a rychlé. Neposkytuje však informace o umístění nebo počtu podřetězců.
2. Umístění podřetězce
Pokud potřebujete znát pozici prvního výskytu podřetězce v řetězci, použijte metody .find() nebo .index() .
Oba vrátí index prvního výskytu podřetězce.
3. Počet podřetězců
Metodu .count() použijte , když chcete vědět, kolikrát se podřetězec vyskytuje v řetězci.
4. Komplexní vzory
Pokud potřebujete porovnat složité vzory nebo provádět vyhledávání bez rozlišení velkých a malých písmen, jsou regulární výrazy nejflexibilnější. Funkce re.search () dokáže zpracovat vzory nad rámec jednoduchých podřetězců a může snadno provádět vyhledávání bez ohledu na velikost písmen.
Regulární výrazy však mohou být přehnané pro jednoduché kontroly podřetězců a mohou být také pomalejší a složitější na používání a údržbu.
5. Provádění analýzy textu
Podívejte se na náš článek na , který ukazuje, jak pracovat s knihovnou textblob.
Můžete použít funkci .tags ke kontrole slovních druhů nebo funkci .ngram k nalezení slov, která se v dokumentu často vyskytují společně.
Závěrečné myšlenky
Naučili jste se sedm metod, jak zkontrolovat, zda slovo nebo řetězec obsahuje jiný objekt. Ty zahrnovaly operátory členství, vestavěné funkce, regulární výrazy a funkce Pandas.
Každá metoda je správná pro určité situace, ale ne pro všechny. Použijte tento článek, abyste zvládli programovací jazyk Python a použili nejlepší řešení pro vaši úlohu analýzy řetězců.
Pamatujte, že neexistuje žádná univerzální metoda. Každý přístup má své vlastní výhody a zvláštnosti, takže si můžete vybrat ten, který vyhovuje vašemu stylu nebo konkrétnímu problému, který se snažíte vyřešit. Na konci dne je Python především o tom, jak vám usnadnit život, takže přijměte jeho flexibilitu!
Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.
Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.
V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.
Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.
Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.
V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.
V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.
V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.
V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.
Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.