Blu*_*oon 7 pivot pivot-table pandas
我正在尝试使用以下函数重塑我的pd数据帧:
ar = ar.pivot(index='Received', columns='Merch Ref', values='acceptance_rate')
Run Code Online (Sandbox Code Playgroud)
数据集如下所示:
Merch Ref Received acceptance_rate
0 SF 2014-08-28 15:38:00 0
1 SF 2014-08-28 15:44:00 0
2 SF 2014-08-28 16:04:00 0
3 WF 2014-08-28 16:05:00 0
4 WF 2014-08-28 16:07:00 0
5 SF 2014-08-28 16:34:00 0
6 SF 2014-08-28 16:55:00 0
7 BF 2014-08-28 17:59:00 0
8 BF 2014-08-29 15:05:00 0
9 SF 2014-08-29 21:25:00 0
10 SF 2014-08-30 10:29:00 0
...
Run Code Online (Sandbox Code Playgroud)
我想得到的是:
SF WF BF
2014-08-28 15:38:00 0 1 0
2014-08-28 15:44:00 0 1 0
2014-08-28 16:04:00 0 0 1
2014-08-28 16:05:00 1 1 0
2014-08-28 16:07:00 0 0 1
2014-08-28 16:34:00 1 1 0
2014-08-28 16:55:00 1 1 0
2014-08-28 17:59:00 0 1 0
2014-08-29 15:05:00 0 0 1
2014-08-29 21:25:00 0 0 1
2014-08-30 10:29:00 0 1 0
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
ValueError: Index contains duplicate entries, cannot reshape
Run Code Online (Sandbox Code Playgroud)
这是因为我同时下了一些订单.有没有办法对这些订单进行汇总/汇总?
小智 1
正如您所识别的,错误是由于 x inReceived
和 y in的 (x, y) 对中的重复项而发生的Merch Ref
。
如果您想届时sum
聚合
ar.pivot_table(index='Received', columns='Merch Ref',
values='acceptance_rate', aggfunc=np.sum)
Run Code Online (Sandbox Code Playgroud)
。默认聚合函数是mean
。那是,
ar.pivot_table(index='Received', columns='Merch Ref',
values='acceptance_rate')
Run Code Online (Sandbox Code Playgroud)
,将对表进行透视,并且具有相同 (x, y) 对的所有条目将通过该np.mean
函数进行聚合。
备注:我最初收到相同的错误,但在迭代 (x, y) 对后,我没有找到任何重复项。事实证明,某些对的形式为 ( nan
, nan
),并且在迭代过程中被省略。因此,对于尝试调试他们认为是唯一对的其他用户,请考虑使用或检查nan
s 。pd.isnull
pd.notnull
归档时间: |
|
查看次数: |
4219 次 |
最近记录: |