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


Python pyspark DataFrame.pivot_table用法及代碼示例


本文簡要介紹 pyspark.pandas.DataFrame.pivot_table 的用法。

用法:

DataFrame.pivot_table(values: Union[Any, Tuple[Any, …], List[Union[Any, Tuple[Any, …]]], None] = None, index: Optional[List[Union[Any, Tuple[Any, …]]]] = None, columns: Union[Any, Tuple[Any, …], None] = None, aggfunc: Union[str, Dict[Union[Any, Tuple[Any, …]], str]] = 'mean', fill_value: Optional[Any] = None) → pyspark.pandas.frame.DataFrame

創建電子表格樣式的數據透視表作為 DataFrame。數據透視表中的級別將存儲在結果 DataFrame 的索引和列上的 MultiIndex 對象(分層索引)中。

參數

values要聚合的列。

它們應該是少於三個的列表或字符串。

index列(字符串)或列列表

如果傳遞一個數組,它必須與數據的長度相同。該列表應包含字符串。

columns柱子

透視操作中使用的列。隻支持一列,它應該是一個字符串。

aggfunc函數(字符串),dict,默認均值

如果 dict 被傳遞,鍵是要聚合的列,值是函數或函數列表。

fill_value標量,默認無

替換缺失值的值。

返回

tableDataFrame

例子

>>> df = ps.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
...                          "bar", "bar", "bar", "bar"],
...                    "B": ["one", "one", "one", "two", "two",
...                          "one", "one", "two", "two"],
...                    "C": ["small", "large", "large", "small",
...                          "small", "large", "small", "small",
...                          "large"],
...                    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
...                    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]},
...                   columns=['A', 'B', 'C', 'D', 'E'])
>>> df
     A    B      C  D  E
0  foo  one  small  1  2
1  foo  one  large  2  4
2  foo  one  large  2  5
3  foo  two  small  3  5
4  foo  two  small  3  6
5  bar  one  large  4  6
6  bar  one  small  5  8
7  bar  two  small  6  9
8  bar  two  large  7  9

第一個示例通過求和來聚合值。

>>> table = df.pivot_table(values='D', index=['A', 'B'],
...                        columns='C', aggfunc='sum')
>>> table.sort_index()  
C        large  small
A   B
bar one    4.0      5
    two    7.0      6
foo one    4.0      1
    two    NaN      6

我們還可以使用fill_value 參數填充缺失值。

>>> table = df.pivot_table(values='D', index=['A', 'B'],
...                        columns='C', aggfunc='sum', fill_value=0)
>>> table.sort_index()  
C        large  small
A   B
bar one      4      5
    two      7      6
foo one      4      1
    two      0      6

我們還可以為任何給定的值列計算多種類型的聚合。

>>> table = df.pivot_table(values=['D'], index =['C'],
...                        columns="A", aggfunc={'D': 'mean'})
>>> table.sort_index()  
         D
A      bar       foo
C
large  5.5  2.000000
small  5.5  2.333333

下一個示例聚合多個值。

>>> table = df.pivot_table(index=['C'], columns="A", values=['D', 'E'],
...                         aggfunc={'D': 'mean', 'E': 'sum'})
>>> table.sort_index() 
         D             E
A      bar       foo bar foo
C
large  5.5  2.000000  15   9
small  5.5  2.333333  17  13

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.DataFrame.pivot_table。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。