Создайте Python-скрипт для обработки данных. Задача состоит в том, чтобы построить ETL-процесс, который очищает и агрегирует данные из CSV-файлов о продажах, а затем сохраняет агрегированные данные в новом файле.
Очистка данных: удаление записей с пустыми значениями в столбцах price или quantity.
Агрегация: подсчет общего количества проданных товаров и общей суммы по каждому продукту.
➡️ Пример:
•
python app.py sales_data.csv — создает новый файл aggregated_data.csv с общей суммой и количеством проданных товаров по каждому продукту.Решение задачи ⬇️
import pandas as pd
import sys
def clean_and_aggregate(file_path):
# Загружаем данные
data = pd.read_csv(file_path)
# Удаляем строки с пустыми значениями в колонках 'price' и 'quantity'
data.dropna(subset=['price', 'quantity'], inplace=True)
# Преобразуем колонки в числовой формат, ошибки игнорируем
data['price'] = pd.to_numeric(data['price'], errors='coerce')
data['quantity'] = pd.to_numeric(data['quantity'], errors='coerce')
# Удаляем строки с некорректными значениями
data.dropna(subset=['price', 'quantity'], inplace=True)
# Агрегируем данные
aggregated_data = data.groupby('product_id').agg(
total_quantity=('quantity', 'sum'),
total_sales=('price', 'sum')
).reset_index()
# Сохраняем в новый CSV
aggregated_data.to_csv('aggregated_data.csv', index=False)
print("Агрегация завершена. Данные сохранены в 'aggregated_data.csv'.")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Использование: python app.py <путь к файлу CSV>")
sys.exit(1)
file_path = sys.argv[1]
clean_and_aggregate(file_path)