Рубрики
Без рубрики

Pandas elt () и нерясь с помощью функции pivot ()

Функция Pandas Melt () используется для изменения формата DataFrame из шириной до длительного времени. Он используется для создания определенного формата объекта DataFrame, где один

Автор оригинала: Pankaj Kumar.

Функция Pandas Melt () используется для изменения формата DataFrame из шириной до длительного времени. Он используется для создания определенного формата объекта DataFrame, в котором один или несколько столбцов работают как идентификаторы. Все оставшиеся столбцы рассматриваются как значения и необотаются на ось строки и только два столбца – Переменная и ценность Отказ

1. Pandas Melt () Пример

Использование функции MELT () более ясна при просмотре примера.

import pandas as pd

d1 = {"Name": ["Pankaj", "Lisa", "David"], "ID": [1, 2, 3], "Role": ["CEO", "Editor", "Author"]}

df = pd.DataFrame(d1)

print(df)

df_melted = pd.melt(df, id_vars=["ID"], value_vars=["Name", "Role"])

print(df_melted)

Выход:

     Name  ID    Role
0  Pankaj   1     CEO
1    Lisa   2  Editor
2   David   3  Author

   ID variable   value
0   1      Name  Pankaj
1   2      Name    Lisa
2   3      Name   David
3   1      Role     CEO
4   2      Role  Editor
5   3      Role  Author

Мы можем передавать параметры «var_name» и «value_name», чтобы изменить имена столбцов «Переменную» и «значение».

df_melted = pd.melt(df, id_vars=["ID"], value_vars=["Name", "Role"], var_name="Attribute", value_name="Value")

2. Несколько колонн как id_vars

Посмотрим, что произойдет, когда мы передаем несколько столбцов в качестве параметра ID_VARS.

df_melted = pd.melt(df, id_vars=["ID", "Name"], value_vars=["Role"])
print(df_melted)

Выход:

   ID    Name variable   value
0   1  Pankaj     Role     CEO
1   2    Lisa     Role  Editor
2   3   David     Role  Author

3. Пропуск колонн в функции MELT ()

Не требуется использовать все строки из источника DataFrame. Давайте пропустим столбец «ID» в следующем примере.

df_melted = pd.melt(df, id_vars=["Name"], value_vars=["Role"])
print(df_melted)

Выход:

     Name variable   value
0  Pankaj     Role     CEO
1    Lisa     Role  Editor
2   David     Role  Author

4. Невозможное значение dataframe с использованием функции pivot ()

Мы можем использовать функцию Pivot (), чтобы нерешить объект DataFrame и получить исходное dataframe. Значение параметра функции Pivot () () должно быть таким же, как значение «id_vars». Значение «столбцов» следует пропущено как имя столбца «Переменная».

import pandas as pd

d1 = {"Name": ["Pankaj", "Lisa", "David"], "ID": [1, 2, 3], "Role": ["CEO", "Editor", "Author"]}

df = pd.DataFrame(d1)

# print(df)

df_melted = pd.melt(df, id_vars=["ID"], value_vars=["Name", "Role"], var_name="Attribute", value_name="Value")

print(df_melted)

# unmelting using pivot()

df_unmelted = df_melted.pivot(index='ID', columns='Attribute')

print(df_unmelted)

Выход:

   ID Attribute   Value
0   1      Name  Pankaj
1   2      Name    Lisa
2   3      Name   David
3   1      Role     CEO
4   2      Role  Editor
5   3      Role  Author

            Value        
Attribute    Name    Role
ID                       
1          Pankaj     CEO
2            Lisa  Editor
3           David  Author

Неожиданные значения DataFrame такие же, как исходное dataframe. Но столбцы и индекс нуждаются в незначительных изменениях, чтобы сделать его точно так же, как оригинальный кадр данных.

df_unmelted = df_unmelted['Value'].reset_index()
df_unmelted.columns.name = None
print(df_unmelted)

Выход:

   ID    Name    Role
0   1  Pankaj     CEO
1   2    Lisa  Editor
2   3   David  Author

Ссылка : Pandas elt () API DOC