Загрузка данных


import csv

with open("data-62741.csv", mode="r", encoding="utf-8") as f:
    reader = csv.reader(f, delimiter=";")
    header = next(reader)  # Пропускаем 1-ю строку (английский заголовок)
    sub_header = next(reader)  # Пропускаем 2-ю строку (русский заголовок)
    rows = list(reader)  # Теперь тут только чистые данные

col_idx = header.index("NumberOfStations")
n = len(rows)

for i in range(n):
    min_idx = i
    for j in range(i + 1, n):
        val_j_str = rows[j][col_idx].strip()
        val_min_str = rows[min_idx][col_idx].strip()

        val_j = int(val_j_str) if val_j_str else float("inf")
        val_min = int(val_min_str) if val_min_str else float("inf")

        if val_j < val_min:
            min_idx = j

    rows[i], rows[min_idx] = rows[min_idx], rows[i]

with open(
    "data-62741_sorted.csv", mode="w", encoding="utf-8", newline=""
) as f:
    writer = csv.writer(f, delimiter=";")
    writer.writerow(header)
    writer.writerow(sub_header)
    writer.writerows(rows)