我有一個關於熊貓dataframes一個問題:熊貓據幀GROUPBY:雙GROUPBY和應用功能
我有類似下面的數據幀,
df = pd.DataFrame([[1,1,10],[1,1,30],[1,2,40],[2,3,50],[2,3,150],[2,4,100]],columns=["a","b","c"])
a b c
0 1 1 10
1 1 1 30
2 1 2 40
3 2 3 50
4 2 3 150
5 2 4 100
,我想產生下面的輸出,
a "new col"
0 1 30
1 2 100
其中第一線是通過以下計算:
- 組DF通過第一列「一」,
- 然後組中的每個分組的對象的「B」
- 計算使用「c」該B組
- 的平均值計算所有B groupbs的手段對於一個「一」
- 這是存儲在「新關口」的一個最終值「a」
我可以想像,這是有點難以理解,但我希望這是可以理解的,不過。
我取得了理想的結果,但我需要它的一個巨大的數據幀,我的解決辦法大概是多少減緩,
pd.DataFrame([ [a, adata.groupby("b").agg({"c": lambda x:x.mean()}).mean()[0]] for a,adata in df.groupby("a") ],columns=["a","new col"])
a new col
0 1 30.0
1 2 100.0
因此,我所需要的東西,如(?) DF。 groupby(「a」)。groupby(「b」)[「c」]。mean()
非常感謝您提前!