同様にエクセルピボットテーブルは、一般的に以下の方法を使用して、行によってグループ化されました。
(=なし、軸= 0、レベル=なし、as_index = Trueの場合、ソート=真、group_keys =によってdf.groupby 真、
スクイズ = Falseを、観察= Falseを、** kwargsから)
これは、パケット取得DataFrameGroupByオブジェクトの直接の結果です。
DF = pd.DataFrame({ ' A ':[ ' 趙'、' 李'、' 王'、' 李'、' 趙' ]、 ' B ':[ ' 1 '、' 1 '、' 2 '、' 3 '、' 2 ' ]、 ' C ':np.arange(1.6)、 ' D ':np.arange(6,11 )}) プリント(DF) プリント(df.groupby(' A ' )) プリント(型(df.groupby(' A ' ))) # ABCD #0趙1つの乃至6 #1のLi 1 2 7 #2王2つの3~8 #3のLi 3 4 9 #4趙2個の5 10 #<pandas.core.groupby.generic.DataFrameGroupBy 0x0000000001E6C550におけるオブジェクト> #<クラスのpandas.core。 groupby.generic.DataFrameGroupBy '>
これは、各要素は、パケットタプル値、第2の値データフレームの名前の組である反復パケット対象イテレート可能オブジェクトの直接の結果です。またはタプルビューのリストは、各要素に変換することができます。
以下のための N、P で df.groupby(' A ' ): プリント(型(p)) プリント(n)を 印刷(P) プリント(' ------------------ ------- ' ) #<クラスのpandas.core.frame.DataFrame'> #1 のLi #1 ABCD #1のLi 1個の2 7 #3のLi 3 4 9 #----------- -------------- #<クラスのpandas.core.frame.DataFrame '> #王 # ABCD #2王2 3 8 #------------------------- #<クラスのpandas.core.frame.DataFrame '> #趙 # ABCD #0趙1乃至6 #4趙2つの5 10 #-------------------------
get_groupにより、パケットの内容を取得(「グループ名」)
基は辞書、グループ名の辞書キー、行グループに含まれるリストのインデックス値が配置されており、それはによってパケットグループ行の[「グループ名」]ビューであってもよいです
プリント(df.groupby(' A ').get_group(' 趙')) #取得したグループ化された趙グループ #1 ABCD #0 1 6つ趙 #4 10 5 TWO趙 プリント(df.groupby([ ' A '、' B ' ])。グループ) プリント(df.groupby([ ' A '、' B ' ])。グループ[(' リー'、' 一' )]) #{( 'リー'、 '1'):Int64Index([1]、DTYPE = 'Int64の')、( 'リー'、 '3'):Int64Index([3]、DTYPE = 'Int64の')、(「王' '2'):Int64Index([2]、DTYPE = 'Int64の')、( '趙'、 '1'):Int64Index([0]、DTYPE = 'Int64の')、( '趙'、' 2 '):Int64Index([4]、DTYPE =' Int64の')} #1 Int64Index([1]、DTYPE =' int64'モード)
各パケットサイズ統計の長さ
プリント(df.groupby(' A ' ).size()) プリント(型(df.groupby(' A ' ).size())) # # のLi 2 #王1 #の趙2 #のDTYPE:int64モード #<クラスのpandas.core.series.Series '>
複数の列グループは、リストに記述する必要がある場合にはパケットは、単一または複数の列であってよいです。
DF = pd.DataFrame({ ' A ':[ ' 趙'、' 李'、' 王'、' 李'、' 趙' ]、 ' B ':[ ' 1 '、' 1 '、' 2 '、' 3 '、' 2 ' ]、 ' C ':np.arange(1.6)、 ' D ':np.arange(6,11 )}) プリント(df.groupby(' A ').SUM()) #列パケットの、合計、要素のための他の非数値を無視数値文字列の要素 を印刷(' --------------------- ' ) を印刷(df.groupby([ ' A '、' B ' ])。SUM() ) #グループ化列AとB、他の列の合計に、無視する非数値列要素の 印刷(「--------------------- 」) 印刷( df.groupby(' A ')' D' ] .SUM()) #グループ内の列は、D列の和と CD #A #のLi。6 16 #王。8. 3 #趙。6 16 位--------------- ------ # CD #AB #リー2. 7つ # スリー。4. 9 #王。8. 3 TWO #趙一つ。1. 6 # TWO。5 10 #---------------- ----- # #リー16 #王。8 #趙16 # 名前:D、DTYPE:INT32