小编Imr*_*Tan的帖子

Pandas:如何编写一个更快的循环来检查一列,然后根据第一列的值更改另一列的符号?

我的数据框中有大约 1000 万行数据。下面是 2 行的示例。

指数 数量 借记卡信用卡
0 1000 1
1 2000年 2

我想编写一个函数来检查“借方/贷方”列中的值是借方 1 还是贷方 2。如果“金额”列中的数字为 2,则将其替换为负数。因此,例如,该表将更改为:

指数 数量 借记卡信用卡
0 1000 1
1 -2000 2

这是我写的函数,但它对于 900 万行来说真的很慢。谁能告诉我如何重构这段代码?或者是否有更有效的方法来执行此任务?(使用 python 或 sql。最好是 python。)

def change_credits_to_negative(df):
    for num in range(len(df)):
        if df['debit/credit'].loc[num] == 2: # 1 is for debit & 2 is for credit
            df['Amount'].loc[num] = -df['Amount'].loc[num]
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

0
推荐指数
1
解决办法
57
查看次数

标签 统计

pandas ×1

python ×1

python-3.x ×1