Строки в Pandas (.str)
Для столбцов со строками в Pandas есть аксессор .str — он применяет
строковые методы поэлементно. Это аналог цикла [x.method() for x in column],
только написанный векторно и быстро.
Когда использовать
Очистка имён датчиков от лишних пробелов.
Парсинг ID, серийных номеров, MAC-адресов.
Поиск подстрок и фильтр по regex.
Пример 1. lower / upper
import pandas as pd
s = pd.Series(["Bot1", "BOT2", "bot3"])
print(s.str.lower())
print(s.str.upper())
Output:
0 bot1
1 bot2
2 bot3
dtype: object
0 BOT1
1 BOT2
2 BOT3
dtype: object
Пример 2. strip
import pandas as pd
s = pd.Series([" temp ", " hum"])
print(s.str.strip())
Output:
0 temp
1 hum
dtype: object
Пример 3. contains
import pandas as pd
df = pd.DataFrame({"name": ["temp_sensor", "humidity", "lux_meter"]})
print(df[df["name"].str.contains("sensor")])
Output:
name
0 temp_sensor
По умолчанию принимает regex. Для буквального совпадения — regex=False.
Пример 4. split
import pandas as pd
s = pd.Series(["bot1-temp", "bot2-hum"])
print(s.str.split("-", expand=True))
Output:
0 1
0 bot1 temp
1 bot2 hum
expand=True разворачивает в столбцы.
Пример 5. replace с regex
import pandas as pd
s = pd.Series(["3.7V", "4.0V", "3.6V"])
print(s.str.replace("V", "", regex=False).astype(float))
Output:
0 3.7
1 4.0
2 3.6
dtype: float64
Пример 6. extract регулярки
import pandas as pd
s = pd.Series(["bot1-2026-01", "bot42-2026-02"])
print(s.str.extract(r"bot(\d+)-(\d{4})-(\d{2})"))
Output:
0 1 2
0 1 2026 01
1 42 2026 02
Пример 7. len и startswith
import pandas as pd
s = pd.Series(["bot1", "device42", "bot999"])
print(s.str.len())
print(s.str.startswith("bot"))
Output:
0 4
1 8
2 6
dtype: int64
0 True
1 False
2 True
dtype: bool
Подводные камни
.strмолча возвращаетNaNдля нестроковых значений — приведите столбец черезastype(str), если ожидаете смешанные данные.str.containsпо умолчанию учитывает регистр;case=Falseотключает.Регулярки в
replaceиногда срабатывают неожиданно — указывайтеregex=Falseдля буквальной замены.
См. также
Примечание
Лицензия и источники
Техническое описание адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Перевод на русский, примеры и пояснения — © AlashEd Wiki.