首页 > 解决方案 > 将多列值金额循环到Python中文件的借方和贷方金额列

问题描述

我有多行十列,三列有金额值。我想在同一行的单独列中获取借方金额(+ 值)和贷方金额(-Ve 值)?你能帮忙写一个逻辑吗?

在此处输入图像描述

标签: python

解决方案


您可以pandas为此使用包。更多信息在这里

import pandas as pd

df = pd.read_csv('your_file.csv', names=['a', 'b', 'c', 'd', 'e'], header=None)

df['Debit for 3'] = df.apply(lambda row: 0 if row.c < 0 else row.c, axis=1)
df['Credit for 3'] = df.apply(lambda row: abs(row.c) if row.c < 0 else 0, axis=1) 

df['Debit for 4'] = df.apply(lambda row: 0 if row.d < 0 else row.d, axis=1)
df['Credit for 4'] = df.apply(lambda row: abs(row.d) if row.d < 0 else 0, axis=1) 

df['Debit for 5'] = df.apply(lambda row: 0 if row.e < 0 else row.e, axis=1)
df['Credit for 5'] = df.apply(lambda row: abs(row.e) if row.e < 0 else 0, axis=1) 

del df['c']
del df['d']
del df['e']

df.to_csv('your_results.csv')

没有 pandas 包:

您可以使用 python 中的 CSV 模块读取输入 CSV。

用每行的 0 值初始化一个新列表。

然后,读取文件中的行并遍历每一行,如果 row[2] > 0 然后在 new_row[3] 处插入 abs(row[2]) 值。如果 row[2] < 0 则在 new_row[4] 处插入 abs(row[2]) 值。

对 row[3] 和 row[4] 重复此操作。

最后以所需的格式保存您的结果。


推荐阅读