DSPROGLIB Telegram 6609
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:
import pandas as pd

data = {
'order_id': [1, 2, 3, 4, 5],
'order_date': ['2023-01-01', '2023-02-15', 'not available', '2023-03-10', '2023-04-05'],
'amount': [100, 150, 200, 130, 170]
}

df = pd.DataFrame(data)
print(df)


Результат:
   order_id    order_date  amount
0 1 2023-01-01 100
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


💡 Задача:

Отфильтровать заказы с датами после 2023-02-01:
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


Вывод:
   order_id     order_date  amount
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой order_date, чтобы фильтрация по датам работала?

🎯 Подвох:
— Колонка order_date — это строки (object), а не тип datetime.
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение 'not available' мешает конвертации.

💡 Решение:
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


pd.to_datetime с errors='coerce' заменит неправильные даты на NaT.
— Фильтрация по datetime теперь корректна.

Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.

Библиотека дата-сайентиста #междусобойчик



tgoop.com/dsproglib/6609
Create:
Last Update:

🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:

import pandas as pd

data = {
'order_id': [1, 2, 3, 4, 5],
'order_date': ['2023-01-01', '2023-02-15', 'not available', '2023-03-10', '2023-04-05'],
'amount': [100, 150, 200, 130, 170]
}

df = pd.DataFrame(data)
print(df)


Результат:
   order_id    order_date  amount
0 1 2023-01-01 100
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


💡 Задача:

Отфильтровать заказы с датами после 2023-02-01:
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


Вывод:
   order_id     order_date  amount
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой order_date, чтобы фильтрация по датам работала?

🎯 Подвох:
— Колонка order_date — это строки (object), а не тип datetime.
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение 'not available' мешает конвертации.

💡 Решение:
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


pd.to_datetime с errors='coerce' заменит неправильные даты на NaT.
— Фильтрация по datetime теперь корректна.

Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.

Библиотека дата-сайентиста #междусобойчик

BY Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение




Share with your friend now:
tgoop.com/dsproglib/6609

View MORE
Open in Telegram


Telegram News

Date: |

To view your bio, click the Menu icon and select “View channel info.” Click “Save” ; 6How to manage your Telegram channel? The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. A vandalised bank during the 2019 protest. File photo: May James/HKFP.
from us


Telegram Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
FROM American