我想使用pivot_table在每个单元格中显示列的任意值。例如,给定这样的DataFrame

df = pd.DataFrame({'x': ['x1', 'x1', 'x2'],
                   'y': ['a', 'b', 'c']})


为每个y的值计算x的值:

df.pivot_table(index='x', values='y', aggfunc=len)
    y
x
x1  2
x2  1


因此,我想代替[2, 1]['a', 'c']

我尝试了这些方法,但是都产生错误(notebook):

df.pivot_table(index='x', values='y', aggfunc=sample)
df.pivot_table(index='x', values='y', aggfunc=head)
df.pivot_table(index='x', values='y', aggfunc=lambda x: x[0])


对于https://stackoverflow.com/a/38982172/1840471,替代方法是使用['b', 'c']groupby,在这种情况下,这将产生所需的结果:

df.groupby(['x']).y.agg('head')


但是,我希望使用agg,因为我的完整用例涉及获取行和列中的值。

最佳答案

如何使用first如下:

df.pivot_table(index='x', values='y', aggfunc='first')

Out[67]:
    y
x
x1  a
x2  c

关于python - aggfunc在 Pandas pivot_table的单元格中获取任意值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56612975/

10-11 19:20