用法:
pandas.pivot(data, index=None, columns=None, values=None)
返回由給定索引/列值組織的重塑 DataFrame。
根據列值重塑數據(生成“pivot” 表)。使用指定
index
/columns
中的唯一值來形成結果 DataFrame 的軸。此函數不支持數據聚合,多個值將導致列中的 MultiIndex。有關重塑的更多信息,請參閱用戶指南。- data: DataFrame
- index:str 或 object 或 str 列表,可選
用於製作新框架索引的列。如果沒有,則使用現有索引。
- columns:str 或對象或 str 列表
用於製作新框架的列的列。
- values:str,對象或前一個列表,可選
用於填充新框架值的列。如果未指定,將使用所有剩餘的列,並且結果將具有分層索引的列。
- DataFrame
返回重構的 DataFrame。
- ValueError::
當存在任何具有多個值的
index
、columns
組合時。DataFrame.pivot_table
當你需要聚合時。
參數:
返回:
拋出:
注意:
有關更精細的控製,請參閱分層索引文檔以及相關的堆棧/取消堆棧方法。
有關更多示例,請參閱用戶指南。
例子:
>>> df = pd.DataFrame({'foo':['one', 'one', 'one', 'two', 'two', ... 'two'], ... 'bar':['A', 'B', 'C', 'A', 'B', 'C'], ... 'baz':[1, 2, 3, 4, 5, 6], ... 'zoo':['x', 'y', 'z', 'q', 'w', 't']}) >>> df foo bar baz zoo 0 one A 1 x 1 one B 2 y 2 one C 3 z 3 two A 4 q 4 two B 5 w 5 two C 6 t
>>> df.pivot(index='foo', columns='bar', values='baz') bar A B C foo one 1 2 3 two 4 5 6
>>> df.pivot(index='foo', columns='bar')['baz'] bar A B C foo one 1 2 3 two 4 5 6
>>> df.pivot(index='foo', columns='bar', values=['baz', 'zoo']) baz zoo bar A B C A B C foo one 1 2 3 x y z two 4 5 6 q w t
您還可以分配列名列表或索引名稱列表。
>>> df = pd.DataFrame({ ... "lev1":[1, 1, 1, 2, 2, 2], ... "lev2":[1, 1, 2, 1, 1, 2], ... "lev3":[1, 2, 1, 2, 1, 2], ... "lev4":[1, 2, 3, 4, 5, 6], ... "values":[0, 1, 2, 3, 4, 5]}) >>> df lev1 lev2 lev3 lev4 values 0 1 1 1 1 0 1 1 1 2 2 1 2 1 2 1 3 2 3 2 1 2 4 3 4 2 1 1 5 4 5 2 2 2 6 5
>>> df.pivot(index="lev1", columns=["lev2", "lev3"],values="values") lev2 1 2 lev3 1 2 1 2 lev1 1 0.0 1.0 2.0 NaN 2 4.0 3.0 NaN 5.0
>>> df.pivot(index=["lev1", "lev2"], columns=["lev3"],values="values") lev3 1 2 lev1 lev2 1 1 0.0 1.0 2 2.0 NaN 2 1 4.0 3.0 2 NaN 5.0
如果有任何重複,則會引發 ValueError。
>>> df = pd.DataFrame({"foo":['one', 'one', 'two', 'two'], ... "bar":['A', 'A', 'B', 'C'], ... "baz":[1, 2, 3, 4]}) >>> df foo bar baz 0 one A 1 1 one A 2 2 two B 3 3 two C 4
請注意,我們的
index
和columns
參數的前兩行是相同的。>>> df.pivot(index='foo', columns='bar', values='baz') Traceback (most recent call last): ... ValueError:Index contains duplicate entries, cannot reshape
相關用法
- Python pandas.pivot_table用法及代碼示例
- Python pandas.plotting.autocorrelation_plot用法及代碼示例
- Python pandas.plotting.bootstrap_plot用法及代碼示例
- Python pandas.period_range用法及代碼示例
- Python pandas.period_range()用法及代碼示例
- Python pandas.plotting.scatter_matrix用法及代碼示例
- Python pandas.plotting.radviz用法及代碼示例
- Python pandas.plotting.parallel_coordinates用法及代碼示例
- Python pandas.plotting.andrews_curves用法及代碼示例
- Python pandas.plotting.lag_plot用法及代碼示例
- Python pandas.plotting.boxplot用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.read_pickle用法及代碼示例
- Python pandas.Index.value_counts用法及代碼示例
- Python pandas.DatetimeTZDtype用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.pivot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。