對於簡單問題的道歉,我是一個對Python比較新的R用戶。在使用索引的函數上聚合失敗
考慮以下最小例如:
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C' : range(0,8),
'D' : range(0,8)})
以下引發錯誤:
def myf(x):
return x[2]
df[["A","C","D"]].groupby('A').aggregate(myf)
所需的輸出將是一個熊貓表如下所示:
| A | myf C | myf D |
-------------------------
| foo | 2 | 2 |
| bar | 3 | 3 |
從評論和文檔,似乎可以做一些事情:
def myf(x):
return x.first
得到的第一項,但它不清楚如何構建一個非內置的方法,仍然會得到適當的索引值。例如:
def myf(x):
return Series(x[1], index=x.index)
似乎不起作用。
你能否提供數值數據和你想要的輸出? – Alexander
提示:在你的函數中加入'print(x)',然後問你想用'x [1]'來處理那個'x'。 – DSM
@亞歷山大我沒有關注。我確實提供了數字數據。我的問題包括一個隨機生成數值的最小示例數據框;在一些'pandas'文檔中使用了相同的例子。 – cynewulf