用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。