擅长:python、mysql、java
<pre><code>df['tpdt'] = df['tp'].astype(str) + df['dt'].astype(str)
del df['tp']
del df['dt']
df = df.groupby(['id','tpdt'],as_index=False).sum()
df = df.reset_index().pivot(columns='tpdt', index='id', values='amt')
</code></pre>
<p>添加一些解释。
首先创建一个列,将dt和tp中的值连接起来。
然后删除那些单独的列,因为您不需要它们。
在id和tpdt上执行groupby,它将对tp和dt的唯一对的amt值求和。
Post,您可以通过tpdt对其进行透视,使其成为列标题。
你甚至可以为同样的问题探索unstack函数。你知道吗</p>