我的数据框中有大约 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)