2
通過自己的功能概括
讓DF是我們從大熊貓的測試數據框中:如何通過列組和在Python
import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
'C' : np.random.randn(8),
'D' : np.random.randn(8)})
我想現在做實際上是通過假設組列A
,是這樣的:
df.groupby(['A'])['C'].sum()
工作正常。現在,我不想使用sum()
,而是希望應用自己的函數以有效的方式彙總數據。
R中的等價物是:
require(plyr); require(dplyr)
df = data.frame(A = c('foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'),
B = c('one', 'one', 'two', 'three','two', 'two', 'one', 'three'),
C = rnorm(8),
D = rnorm(8))
與例如這個函數調用myfun
:
myfun <- function(x){sum(x**2)}
則:
df %>%
group_by(A) %>%
summarise(result = myfun(C))
我希望這個問題是很清晰。非常感謝!
非常感謝你的作品.. – Codutie
@Codutie不客氣! – miradulo
@Codutie,df.apply也適用於這種情況。 – ivan7707