我想使用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/