gpt4 book ai didi

python - python中有保留函数吗?我想将 SAS 代码传输到 python

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:43 25 4
gpt4 key购买 nike

我想将 SAS 代码转换为 python,但在 python 中找不到保留函数。

数据是这样的:

type_id    amount
1 100
1 200
1 400
2 0
1 200
1 300
2 0
1 150

我想要的是当type_id = 2时,金额等于上一行的负值。所以保留函数后的数据会是这样的:

type_id    amount
1 100
1 200
1 400
2 -400
1 200
1 300
2 -300
1 150

SAS 代码是:

data B;
set A;
retain tempvar 0;
if type_id = 2
then amount = tempvar;
else tempvar = -amount;
drop tempvar;
run;

有人知道如何在 python 中执行此操作吗?谢谢!

最佳答案

国际联合会

df
type_id amount
0 1 100
1 1 200
2 1 400
3 2 0
4 1 200
5 1 300
6 2 0
7 1 150

def retain(df):
df['ret'] = df['amount'].shift()
df.ix[df['type_id']==2,'amount'] = -df.ix[df['type_id']==2,'ret']
df.drop("ret", axis=1, inplace=True)
return df

retain(df)
type_id amount
0 1 100.0
1 1 200.0
2 1 400.0
3 2 -400.0
4 1 200.0
5 1 300.0
6 2 -300.0
7 1 150.0

或者:

def retain(df):
df.amount.ix[df.type_id==2] = - df.amount.shift().ix[df.type_id==2]
return df

retain(df)
type_id amount
0 1 100.0
1 1 200.0
2 1 400.0
3 2 -400.0
4 1 200.0
5 1 300.0
6 2 -300.0
7 1 150.0

关于python - python中有保留函数吗?我想将 SAS 代码传输到 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43415579/

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