【发布时间】:2015-02-06 07:33:02
【问题描述】:
如何使用 pandas.pivot_table 在 aggfunc=[] 中指定一个函数,以便我得到每个组的第一个观察结果,就像我运行 groupby().first() 的结果一样?
【问题讨论】:
标签: python pandas pivot-table
如何使用 pandas.pivot_table 在 aggfunc=[] 中指定一个函数,以便我得到每个组的第一个观察结果,就像我运行 groupby().first() 的结果一样?
【问题讨论】:
标签: python pandas pivot-table
您可以使用 aggfunc='first':
In [11]: df = pd.DataFrame([[1, 2, "A"], [1, 4, "A"], [5, 6, "B"]])
In [12]: df
Out[12]:
0 1 2
0 1 2 A
1 1 4 A
2 5 6 B
In [13]: df.pivot_table(index=0, values=1, columns=2) # default aggfunc is 'mean'
Out[13]:
2 A B
0
1 3 NaN
5 NaN 6
In [14]: df.pivot_table(index=0, values=1, columns=2, aggfunc='first')
Out[14]:
2 A B
0
1 2 NaN
5 NaN 6
我不确定文档中是否有用于 aggfunctions 的这些字符串的完整列表(它们也适用于 groupbys),我会看看...
【讨论】:
np.mean 等中有一个字典,尽管回想起来我认为 aggfunc="x" 只是在每个子组上调用 .x() ...... . 嗯。
aggfunc,其中包含您希望对每一列应用的函数,如下所示:df.pivot_table(index=0, aggfunc={0:'mean', 2:'first'})