我有一个 Dataframe ,它看起来按日期-时段-组细分(即,对于每一天,我们有许多时段,在这些时段内,我们有两个组),看起来如下所示:
date | bucket | Group |purchase
2020-01-01 | 1 | A | 12
2020-01-01 | 1 | B | 11
2020-01-01 | 2 | A | 14
2020-01-01 | 2 | B | 14
2020-02-01 | 1 | A | 11
2020-02-01 | 1 | B | 10
我想创建一个新的dataframe,其中的“差异”列如下所示:
date | bucket | purchase | difference
2020-01-01 | 1 | 12-11=1 (Group A - Group B for that day/bucket)
2020-01-01 | 2 | 0
2020-02-01 | 1 | 1
我怎样才能用这样的方式塑造我的df呢?
5条答案
按热度按时间laawzig21#
这些方法不依赖于Group列的值,只依赖于有两个有序组。
输出:
1-Mozway的班轮:
输出:
pdkcd3nj2#
2sbarzqh3#
出局
qoefvg9y4#
当需要选择和对齐时,通常更容易将列设置为索引。这里使用
xs
来选择组:使用DataFrame作为中间层,然后重命名的变量(用于处理多列):
输出:
xienkqul5#
您可以在计算diff之前重新调整 Dataframe :
或者使用
pivot
: