gpt4 book ai didi

python - 检查交易组之间的值是否发生变化

转载 作者:行者123 更新时间:2023-12-05 09:35:01 25 4
gpt4 key购买 nike

给定这个 df:

df = pd.DataFrame({"A":[1,0,0,0,0,1,0,1,0,0,1],'B':['enters','A','B','C','D','exit','walk','enters','Q','Q','exit'],"Value":[4,4,4,4,5,6,6,6,6,6,6]})

A B Value
0 1 enters 4
1 0 A 4
2 0 B 4
3 0 C 4
4 0 D 5
5 1 exit 6
6 0 walk 6
7 1 enters 6
8 0 Q 6
9 0 Q 6
10 1 exit 6

这里有 2 个“交易”。当有人进入和离开时。所以 tx#1 在 0 和 5 之间,tx#2 在 7 和 10 之间。

我的目标是显示值是否已更改?所以在 tx1 中,值从 4 变为 6,而在 tx#2 中没有变化。预期结果:

index   tx  value_before value_after 
0 1 4 6
7 2 6 6

我尝试用 1 填充每个 tx 之间的 0,然后进行分组,但我得到的所有 A 列都为 1。如果每个 tx 独立存在,我不确定如何定义分组。

最佳答案

在每个新的“输入”和数据透视表上分配一个新的交易编号:

df['tx'] = np.where(df.B.eq('enters'),1,0).cumsum()
df[df.B.isin(['enters','exit'])].pivot('tx','B','Value')

结果:

B   enters  exit
tx
1 4 6
2 6 6

关于python - 检查交易组之间的值是否发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66175579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com