Этот метод поможет вам поместить ваши данные в аккуратный формат.
Многие алгоритмы Data Science ожидают получения данных в аккуратном формате.
Под аккуратными данными я подразумеваю следующее:
У каждой переменной должен быть свой столбец.
У каждого наблюдения должна быть своя строка.
У каждого значения должна быть своя ячейка.
Итак, зная, что мы продвигаемся вперед, представляем простой пример данных, которые не являются аккуратными. Это происходит, когда у нас есть записи для одной и той же переменной в разных столбцах.
# Creating a df df_rows = [ ['Anna', 100, 90, 60, 40, 80, 85], ['Charles', 90, 90, 80, 80, 80, 85], ['Bruno', 80, 90, 60, 70, 80, 75], ['Sven', 70, 70, 60, 40, 70, 85], ['Harry', 80, 90, 60, 40, 80, 85], ['Dalila', 60, 90, 60, 40, 80, 85], ['Maria', 100, 90, 100, 55, 80, 85], ['Srini', 100, 60, 60, 50, 60, 85], ['Marta', 90, 90, 60, 40, 80, 85], ['Dan', 100, 90, 60, 40, 80, 85], ['Shannon', 100, 90, 100, 1000, 80, 85], ['Albert', 50, 90, 50, 40, 80, 85] ] df = pd.DataFrame(df_rows, columns=['name', 'test1', 'test2', 'test3', 'test4', 'test5', 'test6'])
Эти данные не аккуратны, потому что каждый столбец представляет собой тестовую оценку, поэтому все эти столбцы представляют собой одну и ту же переменную, которая на самом деле ... ну, оценка.
В зависимости от того, что мы хотим сделать, ожидается, что все оценки за тест будут в одном столбце, поэтому алгоритмы распознают это как единую переменную.
Теперь предположим, что у нас также есть переменные города, возраста, пола и т. Д. в этом наборе данных. Если бы мы представили это таким образом, каждый столбец можно было бы рассматривать как одну переменную, что придает переменной оценки огромный вес в прогнозах, поскольку она умножается на 6.
Функция плавления
Функция pd.melt()
элегантно решает эту проблему. Чтобы использовать это, нам понадобится следующий синтаксис.
Синтаксис метода требует:
- Dataframe
id_vars
: сводный столбец для определения данных, связанных с каждым вводом.value_vars
: столбцы, которые нужно преобразовать в строкиvars_name
: имя столбца, в котором имена столбцов преобразованы в строку.value_name
: Имя столбца, который принимает значения столбцов, преобразованных в строку.
# Transforming with Pandas Melt pd.melt(df, id_vars='name', value_vars=df.drop('name', axis=1), var_name='test', value_name='score')
Ссылка
Ссылка на Документацию Pandas Melt.
Следуйте за мной, чтобы увидеть больше сообщений. Вот мой блог на Medium.