當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas dataframe.melt()用法及代碼示例


Python是進行數據分析的一種出色語言,主要是因為以數據為中心的python軟件包具有奇妙的生態係統。 Pandas是其中的一種,使導入和分析數據更加容易。

Pandas dataframe.melt()函數取消將DataFrame從寬格式轉為長格式,可以選擇保留標識符變量。此函數對於將DataFrame按摩成一種格式非常有用,其中一列或多列是標識符變量(id_vars),而所有其他列(被視為測量變量(value_vars))在行軸上均為“unpivoted”,僅留下兩個非標識符列, “變量”和“值”。

用法:DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name=’value’, col_level=None)
參數:
frame: DataFrame
id_vars: Column(s) to use as identifier variables
value_vars: Column(s) to unpivot. If not specified, uses all columns that are not set as id_vars.
var_name: Name to use for the ‘variable’ column. If None it uses frame.columns.name or ‘variable’.
value_name: Name to use for the ‘value’ column
col_level: If columns are a MultiIndex then use this level to melt.

返回值:DataFrame變成一種格式,其中一列或多列是標識符變量

範例1:采用melt()函數將“A”列設置為標識符變量,將“B”列設置為值變量。

# importing pandas as pd 
import pandas as pd 
  
# Creating the dataframe  
df = pd.DataFrame({"A":[12, 4, 5, 44, 1],  
                   "B":[5, 2, 54, 3, 2],  
                   "C":[20, 16, 7, 3, 8],  
                   "D":[14, 3, 17, 2, 6]}) 
  
# Print the dataframe 
df

讓我們使用dataframe.melt()函數將“A”列設置為標識符變量,將“B”列設置為值變量。

# function to unpivot the dataframe 
df.melt(id_vars =['A'], value_vars =['B'])

輸出:


範例2:采用melt()函數將“A”列設置為標識符變量,將“B”和“C”列設置為值變量。還可以自定義值列和變量列的名稱。

# importing pandas as pd 
import pandas as pd 
  
# Creating the dataframe  
df = pd.DataFrame({"A":[12, 4, 5, 44, 1], 
                   "B":[5, 2, 54, 3, 2],  
                   "C":[20, 16, 7, 3, 8],  
                   "D":[14, 3, 17, 2, 6]}) 
  
# Print the dataframe 
df

讓我們使用dataframe.melt()函數將“A”列設置為標識符變量,將“B”和“C”列設置為值變量。

# function to unpivot the dataframe 
# We will also provide a customized name to the value and variable column 
  
df.melt(id_vars =['A'], value_vars =['B', 'C'],  
        var_name ='Variable_column', value_name ='Value_column')

輸出:



相關用法


注:本文由純淨天空篩選整理自Shubham__Ranjan大神的英文原創作品 Python | Pandas dataframe.melt()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。