aggfunc在熊猫pivot_table的单元格中获取任意值

马克斯·吉尼斯(Max Ghenis)

我想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']得到['b', 'c']

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

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,一种替代方法是使用groupbyagg,在这种情况下,可以产生所需的结果:

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

但是,我要使用它,pivot_table因为我的完整用例涉及获取行和列中的值。

安迪(Andy L.)

如何使用first如下:

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

Out[67]:
    y
x
x1  a
x2  c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章