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')
但这给了我一个重复条目(ID
s)的错误。
我设想它是转置 DATE
,然后按唯一 ID
分组并在下面融化 AMT
。
您想在 aggfunc
参数处理重复索引的地方使用 pivot_table
。
df.pivot_table('AMT', 'DATE', 'ID', aggfunc='sum')
您需要选择如何处理重复项。我把 'sum'
放在那里。默认为 'mean'
这是我的数据框:
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')
但这给了我一个重复条目(ID
s)的错误。
我设想它是转置 DATE
,然后按唯一 ID
分组并在下面融化 AMT
。
您想在 aggfunc
参数处理重复索引的地方使用 pivot_table
。
df.pivot_table('AMT', 'DATE', 'ID', aggfunc='sum')
您需要选择如何处理重复项。我把 'sum'
放在那里。默认为 'mean'