13 May 2025, 12:14 UTC≈1,040 views181 reactionsread 7 August 2026 Photo
🚩 Проверяйте джоины до того, как считать агрегаты
В аналитике обычно всё «ломается» не на groupby, а на этапе объединения данных. Если в джоине затерялись или продублировались строки, итоговые суммы и метрики окажутся недостоверными, а вы потратите часы на «дебаг → созвон → почта → hot‑fix». Один из классных способов проверять джоины - использовать параметр validate= в merge
out = orders.merge(users,
…
👏39❤35🎉31👍27🔥18🤩18🥰12😈1
29 Apr 2025, 12:27 UTC≈1,030 views144 reactionsread 7 August 2026 Photo
🏎 Arrow-строки в Pandas: меньше памяти, больше скорости
Arrow-backend — это способ хранить текстовые столбцы (dtype="string[pyarrow]") не как массивы Python-объектов, а как колонки формата Apache Arrow. Физически данные лежат в двух компактных C-буферах (offset + values).
Почему стоит попробовать?
✔️ Ускорение кода
Типичная выгода — в 3–6 раз быстрее str.contains, str.len, groupby по строкам.
✔️ Уменьшение RAM
1 м…
🤩33❤30👍25🥰20🎉14👏12🔥10
22 Apr 2025, 12:50 UTC837 views122 reactionsread 7 August 2026 ⚡️Если вам нужно быстро создавать новые колонки из выражений и ускорить вычисления, попробуте eval():
df.eval('C = A + B', inplace=True)
# где:
## A и B - уже существующие колонки,
## C - новая (будет создана в df)
Так Pandas «под капотом» обрабатывает выражение чуть эффективнее, а код получается более «чистым». Сложные операции из нескольких столбцов можно оформлять в одной строке, что удобно и наглядно.
❤26👏25👍18🔥17🥰13🤩12🎉11
15 Apr 2025, 13:04 UTC814 views120 reactionsread 7 August 2026 📣 Copy-on-Write (CoW) – новая логика работы с данными, которая будет включена по умолчанию в Pandas 3.0.
Её идея:
Когда ты делаешь какую-то выборку (slice) из большого DataFrame, Pandas сначала создаёт не полную копию данных, а специальное представление (view), которое ссылается на исходные данные.
Но как только ты пытаешься изменить этот кусок, Pandas тут же создаёт копию автоматически, чтобы твои изменения не за…
👍28🔥20🥰18🎉16👏16🤩14❤8
8 Apr 2025, 12:01 UTC≈1,350 views624 reactionsread 7 August 2026 Photo
🚨 Обращаете ли вы внимание на предупреждения при работе с датафреймами?
SettingWithCopy в Pandas — это предупреждение, возникающее, когда ты пытаешься изменить фрагмент датафрейма, и непонятно, изменится ли оригинал или только его копия.
Я же работал в отдельном датафрейме, почему мои данные изменились в исходном датафрейме тоже? 👀
Представь такую ситуацию:
Ты берёшь кусочек большой таблицы и меняешь значения в нё…
🤩143🥰107❤100🔥89🎉83👍68👏34
3 Apr 2025, 11:29 UTC≈1,130 views547 reactionsread 7 August 2026 📣 Несколько любопытных фактов про Pandas
Библиотека была создана Уэсом МакКинни (Wes McKinney) около 2008 года, когда он работал в хедж-фонде AQR. Ему требовался удобный инструмент для быстрой и гибкой работы с данными в Python, особенно с табличными (как в Excel) и временными рядами 📈, поэтому он начал разрабатывать pandas как внутренний проект.
💡 Почему «Pandas»?
Название происходит не столько от симпатичного мед…
🎉127👍105🤩102🔥86🥰64👏33❤30
1 Apr 2025, 11:56 UTC980 views581 reactionsread 7 August 2026 Photo
🔥 Самый популярный вопрос про Pandas на StackOverflow, который набрал более 7 млн просмотров и более 3х тысяч голосов:
How can I iterate over rows in a Pandas DataFrame?
(Как я могу пройтись по строкам датафрейма?)
Классический вопрос об итерации по строкам DataFrame. Несмотря на то, что прямой обход строк не рекомендуется из-за низкой скорости, этот вопрос набрал рекордное число просмотров и голосов.
Да, при рабо…
👏146🤩101🥰84👍75🎉70❤59🔥46
Posted without readable text
30 Mar 2025, 15:34 UTC≈1,190 views559 reactionsread 7 August 2026 Posted without readable text
🥰190🔥107🤩90🎉80❤51👍30👏10😡1
30 Mar 2025, 11:40 UTC≈1,360 views551 reactionsread 7 August 2026 ☄️ Сейчас в Pandas есть интересный баг с корреляцией Пирсона
Возможно вы помните, что коэффициент лежит в интервале [-1, 1]. Но если вы считаете корреляцию через corr(), то рискуете получить некорректный результат:
data = pd.DataFrame(dict(
x=[0, 1],
y=[1.35951, 1.3595100000000007]
))
data.corr()
x y
x 1 1.15
y 1.15 1
Как видите - корреляция между x и y равна 1.15, но как такое получилось?…
👍125❤123🥰77🤩73👏54🔥51🎉48
27 Mar 2025, 12:56 UTC≈1,240 views480 reactionsread 7 August 2026 ⚡️Иногда DataFrame оказывается неожиданно «тяжёлым», и вы начинаете замечать снижение скорости или недостаток памяти. Чтобы найти самые «прожорливые» колонки:
# Предположим, что в df есть колонки A, B, C, тогда
mem_info = df.memory_usage(deep=True) / (1024**2)
print(mem_info.round(2))
Результат:
Index 1.00 # индекс 1 МБ
A 0.40 # 400 КБ
B 3.00 # 3 МБ
C 0.00 # менее 50 КБ
dtype: float64
Тепер…
👏97🥰89🔥72👍61🤩61🎉55❤45
26 Mar 2025, 07:19 UTC879 views538 reactionsread 7 August 2026 ⚡️Используйте метод pipe(), чтобы связать несколько нестандартных преобразований DataFrame в одну цепочку, сохраняя код чистым и читаемым.
import pandas as pd
# Исходный DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40]
})
# Наша функция: умножаем столбец 'A' на 2
def multiply_A(data):
data['A'] = data['A'] * 2
return data
# Применяем pipe: сначала умножаем 'A', затем создаём н…
👏134🎉129🥰86👍52🤩51❤43🔥43
Showing the 12 most recent of 18 posts we hold for @factory_dataframes. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.