我想使用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):
['b', 'c']
对于每个https://stackoverflow.com/a/38982172/1840471,一种替代方法是使用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])
和groupby
,在这种情况下,这会产生所需的结果:
agg
但是,我希望使用df.groupby(['x']).y.agg('head')
,因为我的完整用例涉及获取行和列中的值。
答案 0 :(得分:1)
如何使用first
如下:
df.pivot_table(index='x', values='y', aggfunc='first')
Out[67]:
y
x
x1 a
x2 c