我想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,一种替代方法是使用groupby
和agg
,在这种情况下,可以产生所需的结果:
df.groupby(['x']).y.agg('head')
但是,我要使用它,pivot_table
因为我的完整用例涉及获取行和列中的值。
如何使用first
如下:
df.pivot_table(index='x', values='y', aggfunc='first')
Out[67]:
y
x
x1 a
x2 c
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句