TGViewer
Data Science | Machinelearning [ru] Data Science | Machinelearning [ru] @devsp · 19.8K subscribers
Post #4878 2.28K
👩‍💻 Задачка по 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)
  • ⚡ 3
  • ❤ 2
More from @devsp
  1. Oct 2, 2026😅 Айтишник отправил в одну компанию три одинаковых резюме и только одно дошло до финала О…
  2. Oct 2, 2026Вайбкодим «Полный путь разработки AI-агентов: от MCP до Agentic RAG» Образовательная прогр…
  3. Oct 2, 2026🤣 Правильно расставленные приоритеты в моей жизни би лайк: 💥 xCode Journal
  4. Oct 1, 2026🤯 Люди взбунтовались против «пыточной для ИИ» На GitHub заметили открытый проект AI Tortu…
  5. Oct 1, 2026День в Заонежье начинается ещё в дороге. Мы встретим вас в аэропорту или на вокзале. Дальш…
  6. Sep 30, 2026Две ИИ-фабрики в Армении: что там отгрохали и на кого это в итоге пашет В августе в Раздан…
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 →