用法:
DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)
將 DataFrame 從寬格式轉為長格式,可選擇設置標識符。
此函數可用於將 DataFrame 轉換為一個或多個列是標識符變量 (
id_vars
) 的格式,而所有其他列,被認為是測量變量 (value_vars
),在行軸上是 “unpivoted”,隻留下兩個非標識符列,‘variable’ and ‘value’。- id_vars:元組、列表或 ndarray,可選
用作標識符變量的列。
- value_vars:元組、列表或 ndarray,可選
要取消透視的列。如果未指定,則使用所有未設置為
id_vars
的列。- var_name:標量
用於‘variable’ 列的名稱。如果沒有,它使用
frame.columns.name
或‘variable’。- value_name:標量,默認 ‘value’
用於‘value’ 列的名稱。
- col_level:int 或 str,可選
如果列是 MultiIndex,則使用此級別來融化。
- ignore_index:布爾值,默認為真
如果為 True,則忽略原始索引。如果為 False,則保留原始索引。索引標簽將根據需要重複。
- DataFrame
未透視的 DataFrame 。
參數:
返回:
注意:
有關更多示例,請參閱用戶指南。
例子:
>>> df = pd.DataFrame({'A':{0:'a', 1:'b', 2:'c'}, ... 'B':{0:1, 1:3, 2:5}, ... 'C':{0:2, 1:4, 2:6}}) >>> df A B C 0 a 1 2 1 b 3 4 2 c 5 6
>>> df.melt(id_vars=['A'], value_vars=['B']) A variable value 0 a B 1 1 b B 3 2 c B 5
>>> df.melt(id_vars=['A'], value_vars=['B', 'C']) A variable value 0 a B 1 1 b B 3 2 c B 5 3 a C 2 4 b C 4 5 c C 6
‘variable’ and ‘value’ 列的名稱可以自定義:
>>> df.melt(id_vars=['A'], value_vars=['B'], ... var_name='myVarname', value_name='myValname') A myVarname myValname 0 a B 1 1 b B 3 2 c B 5
原始索引值可以保留:
>>> df.melt(id_vars=['A'], value_vars=['B', 'C'], ignore_index=False) A variable value 0 a B 1 1 b B 3 2 c B 5 0 a C 2 1 b C 4 2 c C 6
如果您有 multi-index 列:
>>> df.columns = [list('ABC'), list('DEF')] >>> df A B C D E F 0 a 1 2 1 b 3 4 2 c 5 6
>>> df.melt(col_level=0, id_vars=['A'], value_vars=['B']) A variable value 0 a B 1 1 b B 3 2 c B 5
>>> df.melt(id_vars=[('A', 'D')], value_vars=[('B', 'E')]) (A, D) variable_0 variable_1 value 0 a B E 1 1 b B E 3 2 c B E 5
相關用法
- Python pandas.DataFrame.merge用法及代碼示例
- Python pandas.DataFrame.memory_usage用法及代碼示例
- Python pandas.DataFrame.mod用法及代碼示例
- Python pandas.DataFrame.mask用法及代碼示例
- Python pandas.DataFrame.mul用法及代碼示例
- Python pandas.DataFrame.multiply用法及代碼示例
- Python pandas.DataFrame.max用法及代碼示例
- Python pandas.DataFrame.mode用法及代碼示例
- Python pandas.DataFrame.min用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
- Python pandas.DataFrame.rename用法及代碼示例
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.dtypes用法及代碼示例
- Python pandas.DataFrame.cummin用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.sparse.from_spmatrix用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.melt。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。