Pivoting/reshaping 以日期作为列的数据框

Pivoting/reshaping a dataframe to have dates as columns

这是我的数据框:

       ID        AMT          DATE
0   1496846   54.76        2015-02-11
1   1496846   195.00       2015-01-09
2   1571558   11350.00     2015-04-30
3   1498812   135.00       2014-07-11
4   1498812   157.00       2014-08-04
5   1498812   110.00       2014-09-23
6   1498812   1428.00      2015-01-28
7   1558450   4355.00      2015-01-26
8   1858606   321.52       2015-03-27
9   1849431   1046.81      2015-03-19

我想让它成为一个由每个 ID 的时间序列数据组成的数据框。即每个列名都是一个日期(已排序),索引为ID,值为每个日期对应的AMT个值。我可以做一些像

这样的事情

df.set_index("DATE").T

但是从这里我被困住了。

我也试过了

df.pivot(index='ID', columns='DATE', values='AMT')

但这给了我一个重复条目(IDs)的错误。

我设想它是转置 DATE,然后按唯一 ID 分组并在下面融化 AMT

您想在 aggfunc 参数处理重复索引的地方使用 pivot_table

df.pivot_table('AMT', 'DATE', 'ID', aggfunc='sum')


您需要选择如何处理重复项。我把 'sum' 放在那里。默认为 'mean'