Змініть формати дати за допомогою редактора Power Query
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Робота з рядками є типовим завданням у Python. Часто потрібно з’ясувати, чи містить рядок інший рядок.
Найпростіші методи перевірити, чи містить рядок Python підрядок, включають оператор «in», функцію find() і метод index(). Більш складні сценарії можна вирішити за допомогою регулярних виразів або зовнішньої бібліотеки, наприклад Pandas.
У цій статті показано:
чотири прості способи
ще дві складні регулярні функції
метод із використанням бібліотеки Pandas
Ви дізнаєтеся про кожну техніку на прикладах їх синтаксису та використання. Ви також отримаєте поради щодо того, який метод найкраще підходить для різних вимог.
Давайте розпочнемо!
Зміст
Основи рядків Python
Рядок у Python — це послідовність символів, яка використовується для представлення текстових даних. Вони можуть містити літери, цифри, символи та пробіли.
Це один із вбудованих типів даних Python, і його можна створити за допомогою:
одинарні лапки (' ')
подвійні лапки (" ")
потрійні лапки (”' ”' або “”” “””)
Рядки індексовані, що означає, що ви можете отримати доступ до певних символів, посилаючись на їхній індексний номер. Початковий індекс дорівнює 0, що означає, що перший символ рядка має індекс 0, другий має індекс 1 і так далі.
Далі ми розглянемо способи перевірки підрядків.
4 найпростіших способи перевірити наявність підрядків
Python надає багато способів перевірити, чи існує певний підрядок у більшому рядку. Деякі є більш складними, ніж інші. Для найпростіших перевірок найпростішими методами є оператор in або один із трьох рядкових методів.
в оператора
метод find().
метод index().
метод count().
1. В Оператор
Оператор «in» у Python — це простий та інтуїтивно зрозумілий спосіб перевірити, чи існує один рядок в іншому рядку. Цей оператор перевіряє членство та повертає логічне значення:
Правда, якщо підрядок знайдено в основному рядку
False, якщо це не так
Ось приклад коду:
s = "Hello, world!"
sub = "world"
result = sub in s
print(result) # Output: True
Оператор "in" чутливий до регістру. Це означає, що символи нижнього та верхнього регістру розглядаються як різні. Наведений вище код не знайде підрядок «hello», тому оператор повертає false.
Якщо ви хочете виконати перевірку без урахування регістру, ви можете перетворити основний рядок і підрядок на той самий регістр перед виконанням перевірки:
s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result) # Output: True
Недоліком оператора in є те, що він не забезпечує положення підрядка в основному рядку. Для цього вам знадобиться інший метод у цьому розділі. Читайте далі…
2. Метод Find().
Метод find() повертає перший індекс, у якому з’являється підрядок, або -1 , якщо підрядок не знайдено.
Ви викликаєте метод find() для рядка s , передаючи підрядок sub як аргумент. Ось приклад:
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")
Ви можете додатково вказати початковий або кінцевий індекс, щоб обмежити пошук. Недоліком цього методу є те, що він зупиняється при першій зустрічі.
3. Метод Index().
Метод index() дуже схожий на метод find() , за винятком того, що він викликає помилку ValueError, коли підрядок не знайдено. Це означає, що вам слід загорнути виклик у розділ Try/Except.
Щоб використовувати метод index() , викличте його в рядку s і передайте підрядок sub як аргумент.
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")
Цей метод також зупиняється на першому підрядку всередині тексту.
4. Метод Count().
Метод .count() підраховує, скільки разів підрядок зустрічається у вихідному рядку. Він повертає ціле число, що представляє цю кількість. Якщо підрядок не знайдено в основному рядку, повертається 0.
Ось простий приклад пошуку літери «o» в тексті «Hello, world!»:
s = "Hello, world!"
sub = "o"
print(s.count(sub)) # Output:2
2 способи зіставлення рядків із регулярними виразами
Використання (regex) трохи складніше, ніж методи в попередньому розділі. Однак вони дають вам більше можливостей для пошуку та аналізу тексту, з яким ви маєте справу.
Два найпростіших способи в модулі re :
пошук()
findall()
1. re.Search()
Функція search () у модулі re шукає шаблон у заданому рядку та повертає відповідний об’єкт, якщо відповідність знайдено. В іншому випадку він повертає None .
За замовчуванням функція чутлива до регістру. Ви можете використовувати позначку re.IgnoreCase , щоб уникнути чутливості до регістру.
Ось простий приклад, який використовує умовні оператори на основі того, чи знайдено рядок:
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")
Зауважте, що цей метод знаходить перший збіг, а потім припиняє пошук. Якщо ви хочете знайти всі збіги, тоді наступний у цьому списку для вас.
2. re.Findall()
Цей метод знаходить усі випадки шаблону пошуку в заданому рядку та повертає список із усіма збігами.
У цьому прикладі використовується шаблон, який відповідає одній чи більше цифрам у рядку. Текстовий рядок «123, 456, 789» містить три послідовності цифр.
import re
pattern = "d+"
text = "123, 456, 789"
numbers = re.findall(pattern, text)
print(numbers)
Це відповідь із прикладу коду: ['123', '456', '789'].
Як знайти підрядки за допомогою Pandas
Pandas — це популярна бібліотека аналізу та обробки даних із відкритим кодом для Python. Він надає структури даних і функції, необхідні для обробки та аналізу структурованих даних.
Однією з основних структур даних, які надає Pandas, є DataFrame. Ви можете використовувати цю універсальну структуру даних для перевірки наявності одного рядка в іншому.
Перевага Pandas полягає в тому, що він надає пакети коду, які вам довелося б багато писати іншими мовами програмування. Зокрема, багато потужності упаковано всередині функції content.
Функція str.contains() у Pandas
Метод str.contains() перевіряє, чи міститься вказаний шаблон або регулярний вираз у рядку стовпця DataFrame.
Ось приклад імпорту бібліотеки та пошуку рядка в списку рядків:
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)
У цьому прикладі ми шукаємо підрядок «an» у стовпці «fruits» і відповідно фільтруємо DataFrame. Результатом буде:
1 банан
4 апельсина
Якщо ви шукаєте більше прикладів того, на що здатні Pandas, перегляньте це відео:
Поради щодо вибору конкретного методу в Python
Вибір методу багато в чому залежить від конкретних вимог вашого завдання.
Ось чотири причини вибрати один із методів, про які ви дізналися з цієї статті, а також один бонусний метод, який ви дізнаєтеся в іншому місці цього блогу:
Швидкість обробки
Потрібно знати розташування підрядка
Потрібно знати кількість входжень підрядка
Ви хочете поєднати складні візерунки
Виконання аналізу тексту
1. Швидкість обробки
Оператор 'in' 0 — найкращий вибір, якщо ви просто хочете знати, чи існує підрядок у рядку.
Для цього це просто, інтуїтивно зрозуміло та швидко. Однак він не надає інформації про розташування або кількість підрядка.
2. Розташування підрядка
Використовуйте методи .find() або .index() , якщо вам потрібно знати позицію першого входження підрядка в рядку.
Вони обидва повертають індекс першого входження підрядка.
3. Кількість підрядків
Використовуйте метод .count() , якщо хочете дізнатися, скільки разів підрядок зустрічається в рядку.
4. Складні візерунки
Якщо вам потрібно зіставити складні шаблони або виконати пошук без урахування регістру, регулярні вирази є найбільш гнучкими. Функція re.search () може обробляти шаблони, крім простих підрядків, і може легко виконувати пошук без урахування регістру.
Однак регулярні вирази можуть бути надмірними для простих перевірок підрядків, а також можуть бути повільнішими та складнішими у використанні та обслуговуванні.
5. Виконання аналізу тексту
Перегляньте нашу статтю про те, як працювати з бібліотекою текстових блоків.
Ви можете використовувати функцію .tags , щоб перевірити наявність частин мови, або функцію .ngram , щоб знайти слова, які часто зустрічаються разом у документі.
Заключні думки
Ви навчилися семи методів перевірки того, чи слово або рядковий об’єкт міститься в іншому. До них входили оператори членства, вбудовані функції, регулярні вирази та функції Pandas.
Кожен метод є правильним для деяких ситуацій, але не для всіх. Використовуйте цю статтю, щоб освоїти мову програмування Python і використовувати найкраще рішення для завдання аналізу рядків.
Пам’ятайте, що універсального методу не існує. Кожен підхід має свої переваги та особливості, тому сміливо вибирайте той, який відповідає вашому стилю чи конкретній проблемі, яку ви намагаєтеся вирішити. Зрештою, Python призначений для полегшення вашого життя, тому прийміть його гнучкість!
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.
Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.
Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.
У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.
У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.
Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.
Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.
У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.
У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.