logo

Python | Pandas.melt()

Щоб полегшити аналіз даних у таблиці, ми можемо змінити форму даних у більш зручну для комп’ютера форму за допомогою Pandas у Python. Pandas.melt() є однією з функцій для цього. Pandas.melt() повертає DataFrame із широкого формату на довгий формат.

встановити роздільник java

Панди тануть() Функція корисна для переведення DataFrame у формат, де один або більше стовпців є змінними-ідентифікаторами, тоді як усі інші стовпці, які вважаються вимірюваними змінними, не повертаються до осі рядка, залишаючи лише два стовпці без ідентифікатора, змінну та значення.

Синтаксис функції Python Pandas.melt().

Синтаксис: pandas.melt(frame, id_vars=Немає, value_vars=Немає,



var_name=Немає, value_name='значення', col_level=Немає)

Параметри:

  • рамка: DataFrame
  • id_vars[кортеж, список або ndarray, необов’язково] : Стовпці для використання як змінних-ідентифікаторів.
  • value_vars[кортеж, список або ndarray, необов’язково]: Стовпці, які потрібно скасувати. Якщо не вказано, використовуються всі стовпці, які не встановлені як id_vars.
  • змінна_ім'я [скаляр]: Ім’я для стовпця «змінна». Якщо немає, він використовує frame.columns.name або «змінну».
  • value_name[скаляр, значення за замовчуванням]: Ім’я для стовпця «значення».
  • col_level[int або string, необов’язково]: Якщо стовпці є MultiIndex, тоді використовуйте цей рівень для розплавлення.

Створення зразка DataFrame

Тут ми створили зразок DataFrame, який будемо використовувати в цій статті.

Python3




# importing pandas as pd> import> pandas as pd> # creating a dataframe> df>=> pd.DataFrame({>'Name'>: {>0>:>'John'>,>1>:>'Bob'>,>2>:>'Shiela'>},> >'Course'>: {>0>:>'Masters'>,>1>:>'Graduate'>,>2>:>'Graduate'>},> >'Age'>: {>0>:>27>,>1>:>23>,>2>:>21>}})> df>

>

>

melt () зробити в прикладі Pandas

Нижче наведено приклад того, як ми можемо різними способами використовувати функцію Pandas melt(). панди :

Приклад 1: Pandas melt().

У цьому прикладіpd.melt>функція використовується для скасування повороту стовпця «Курс», зберігаючи «Ім’я» як змінну ідентифікатора. Отриманий DataFrame має три стовпці: «Назва», «змінна» (містить ім’я стовпця «Курс») і «значення» (містить відповідні значення зі стовпця «Курс»).

Python3




# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])>

>

>

Вихід:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Приклад 2: використання id_vars і value_vars для melt() Pandas DataFrame

У цьому прикладіpd.melt>функція використовується для скасування повороту стовпців «Курс» і «Вік», використовуючи «Ім’я» як змінну ідентифікатора.

Python3

vb і vb net




# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])>

>

>

Вихід:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>

Приклад 3: використання var_name і value_name для melt() Pandas DataFrame

У цьому прикладіpd.melt>функція використовується з налаштованими назвами стовпців. Стовпець «Курс» не повертається, але зберігається «Назва» як ідентифікатор. Отриманий DataFrame має стовпці «Name», «ChangedVarname» (для назви розплавленого стовпця встановлено значення «Course») і «ChangedValname» (містить відповідні значення зі стовпця «Course»).

Python3




# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)>

>

>

Вихід:

 Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Приклад 4: використання ignore_index із функцією Pandas.melt().

У цьому прикладіpd.melt>функція застосовується для скасування повороту стовпців «Курс» і «Вік», використовуючи «Ім’я» як змінну ідентифікатора. Вихідний індекс ігнорується черезignore_index=True>параметр.

Python3




сплячий діалект
# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)>

>

>

Вихід:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>