分組統計是資料分析中較為複雜的一種操作,但是使用起來非常有用,能避開大量的迴圈等等。
dataframe.groupby(
by=none
, axis=0
, level=none
, as_index=true
, sort=true
,group_keys=true
, squeeze=false
, **kwargs)
對dataframe或者series進行分組統計;by為dataframe中的某一列;as_index表示為
1. 以某一列為參照物對另一列進行分組統計
對data1按照key1進行分組,然後求均值:
# -*- coding: utf-8 -*-
""" 資料聚合與分組技術, 利用python進行資料分析
1. groupby;
"""import pandas as pd
import numpy as np
np.random.seed(1)
""" 1. groupby, 按鍵拆分, 重組, 求和 """
df = pd.dataframe()
# 按key1分組, 計算data1列的平均值
key1 = df["data1"].groupby(df["key1"]).mean()
# 語法糖為
key1 = df.groupby(["key1"])["data1"].mean()
2. 以某幾列為參照物對另一列進行分組統計
# -*- coding: utf-8 -*-
""" 資料聚合與分組技術, 利用python進行資料分析
1. groupby;
"""import pandas as pd
import numpy as np
np.random.seed(1)
""" 1. groupby, 按鍵拆分, 重組, 求和 """
df = pd.dataframe()
# 按照key1, key2分組, 對data1列計數
key12 = df["data1"].groupby([df["key1"], df["key2"]]).count().unstack()
3. 以任意陣列為分組鍵對另一列進行分組統計
以乙個陣列來對某一列進行分組統計。
# -*- coding: utf-8 -*-
""" 資料聚合與分組技術, 利用python進行資料分析
1. groupby;
"""import pandas as pd
import numpy as np
np.random.seed(1)
""" 1. groupby, 按鍵拆分, 重組, 求和 """
df = pd.dataframe()
# 以任意陣列為分組鍵
arr = np.array([1993, 1994, 1993, 1996, 1996])
keyarr = df["data1"].groupby(arr).count()
4. 對分組進行迭代
物件經過groupby之後是可以迭代的。
# -*- coding: utf-8 -*-
""" 資料聚合與分組技術, 利用python進行資料分析
1. groupby;
"""import pandas as pd
import numpy as np
np.random.seed(1)
""" 1. groupby, 按鍵拆分, 重組, 求和 """
df = pd.dataframe()
# 對分組進行迭代
for name,group in df.groupby("key1"):
print(name, group)
5. agg的應用
可以對groupby的結果,同時應用多個函式;可以對groupby的結果更正列名。
""" agg資料聚合 """
key1 = df.groupby(["key1"], as_index=false)["data1"].agg()
參考文獻
pandas groupby, agg分組統計
coding utf 8 資料聚合與分組技術,利用python進行資料分析 1.groupby import pandas as pd import numpy as np np.random.seed 1 1.groupby,按鍵拆分,重組,求和 df pd.dataframe 對分組進行迭代 f...
mongodb的mapreduce分組統計
根據in time yyyy mm dd hh mm ss 字段精確到天分組,統計數量 criteria criteria criteria.where parking id is inparking.getparking id and in time gte inparking.getstart ...
Hadoop之MR簡單例子(手機號分組和統計)
按手機號的前三位劃分,相同則為一組 public class areapartitionerextends partitioner override public int getpartition key key,value value,int numpartitions public class ...