TGViewer
Data Science | Machinelearning [ru] Data Science | Machinelearning [ru] @devsp · 19.8K subscribers
Post #4403 3.2K
👩‍💻 Задачка по Python

Создайте Python-скрипт, который читает большой CSV-файл построчно, фильтрует строки по заданному критерию и подсчитывает агрегированные данные на основе указанного столбца. Скрипт должен эффективно обрабатывать файл, используя потоковое чтение (без загрузки файла целиком в память) и выводить итоговую статистику в консоль.

➡️ Пример:

• python process_data.py data.csv age 30 — фильтрует строки, где значение в столбце age больше 30, и подсчитывает общее количество таких записей и среднее значение в другом числовом столбце, например, salary.

Решение задачи ⬇️

import csv
import sys

def process_large_csv(file_path, filter_column, threshold, aggregate_column):
count = 0
total_sum = 0.0

with open(file_path, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)

for row in reader:
# Преобразование значений для фильтрации и агрегации
try:
filter_value = float(row[filter_column])
aggregate_value = float(row[aggregate_column])
except ValueError:
continue # Пропускаем строки с некорректными данными

# Фильтрация строк по заданному условию
if filter_value > threshold:
count += 1
total_sum += aggregate_value

# Вывод итоговой статистики
if count > 0:
average = total_sum / count
print(f"Обработано записей: {count}")
print(f"Среднее значение {aggregate_column} для записей, где {filter_column} > {threshold}: {average:.2f}")
else:
print("Записи, соответствующие условиям фильтрации, не найдены.")

if __name__ == "__main__":
if len(sys.argv) < 5:
print("Использование: python process_data.py <file_path> <filter_column> <threshold> <aggregate_column>")
sys.exit(1)

file_path = sys.argv[1]
filter_column = sys.argv[2]
threshold = float(sys.argv[3])
aggregate_column = sys.argv[4]

process_large_csv(file_path, filter_column, threshold, aggregate_column)
  • 👍 9
  • 🔥 2
More from @devsp
  1. Oct 8, 2026Разбираем decision-модели по кишкам: что внутри Jev, Clef, pplx-decider, Strands Decider,…
  2. Oct 8, 2026Европа тоже влезла в гонку языковых моделей: Германия впервые выкатила модель с результато…
  3. Oct 7, 2026Google выкатила EmbeddingGemma 2 Открытых мультимодальных моделей под эмбеддинги до неё не…
  4. Oct 7, 2026Матан: три подборки по основам 1. База по математике для машинного обучения 2. База по мат…
  5. Oct 6, 2026Яндекс открыл YTsaurus Flow: обработка данных в реальном времени для более точных рекоменд…
  6. Oct 6, 2026Парсить текст без LLM? Проект Real AI SA всё ещё дышит С прошлого поста об этой штуке прош…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →