📌 Как в столбце найти медиану,не используя функцию median ?



💬 Спрашивают в 14% собеседований



Можно найти медиану столбца (или одномерного массива данных) без использования функции median из библиотек. Пошаговый алгоритм и пример кода для нахождения медианы "вручную" ниже:



Алгоритм:



1️⃣ Сортировка данных: Отсортируйте данные по возрастанию.



2️⃣ Определение длины данных: Найдите количество элементов в массиве.



3️⃣ Проверка на четность: Определите, является ли количество элементов четным или нечетным.



4️⃣ Нахождение медианы:



Если количество элементов нечетное, медиана — это элемент, находящийся в середине отсортированного массива.



Если количество элементов четное, медиана — это среднее значение двух центральных элементов.



import pandas as pd



# Пример данных в виде DataFrame

data = pd.DataFrame({

'values': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

})



# Функция для нахождения медианы без использования встроенной функции median

def manual_median(column):

# Преобразование столбца в список и сортировка

sorted_values = sorted(column)

n = len(sorted_values)



# Проверка на четность количества элементов

if n % 2 == 1:

# Не четное количество элементов, медиана - средний элемент

median = sorted_values[n // 2]

else:

# Четное количество элементов, медиана - среднее двух средних элементов

mid1 = sorted_values[n // 2 - 1]

mid2 = sorted_values[n // 2]

median = (mid1 + mid2) / 2.0



return median



# Нахождение медианы для столбца 'values'

median_value = manual_median(data['values'])

print(f"Медиана: {median_value}")




Объяснение кода:



1️⃣ Сортировка данных: Функция sorted(column) создает отсортированный список значений столбца.



2️⃣ Определение длины данных: Переменная n хранит количество элементов в списке.



3️⃣ Проверка на четность:

Оператор % используется для проверки на четность:



Если n нечетное, медиана — это элемент, находящийся в середине списка: sorted_values[n // 2].



Если n четное, медиана — это среднее значение двух центральных элементов: (sorted_values[n // 2 - 1] + sorted_values[n // 2]) / 2.0.



Этот метод позволяет найти медиану данных без использования встроенной функции median. Он полезен для понимания процесса нахождения медианы и может быть использован в ситуациях, когда доступ к встроенным функциям ограничен.



🔥 ТОП ВОПРОСОВ С СОБЕСОВ



🔒 База собесов | 🔒 База тестовых