我正在为纳税申报预先格式化一些数据,我正在使用python自动化一些excel工作。我有一个包含三列的数据框:Account;对方账户;数量我只有对方账户的名称和值,但同一对账户的值-对方账户应该完全相同。例如:
Account Opposite Acc. Amount
Cash -240.56
Supplies 240.56
Dentist -10.45
Gum 10.45
从这一点,我可以推断,现金与用品相反,牙医与口香糖相反,因此我希望我的产出是:
Account Opposite Acc. Amount
Supplies Cash -240.56
Cash Supplies 240.56
Gum Dentist -10.45
Dentist Gum 10.45
现在,我使用str.contains手动执行此操作
df = df.assign(en_accounts = df['Opposite Acc.'])
df['Account'] = df['Account'].fillna("0")
df.loc[df['Account'].str.contains('Cash'), 'Account'] = 'Supplies'
但是有很多变量,我想知道是否有一种方法可以在python中自动化这个过程。一种策略可能是:如果两行相加为0,则帐户是匹配的-->;因此,当项目A(如供应品)发生在“对方账户”中时,项目B(如现金)放在同一行,但放在“账户”中
这就是我到目前为止所做的:
df['Amount'] = np.abs(df["Amount"])
c1 = df['Amount']
c2 = df['Opposing Acc.']
for i in range(1,len(c1)-1):
p = c1[i-1]
x = c1[i]
n = c1[i+1]
if p == x:
for i in range(1,len(c2)-1):
a = c2[i-1]
df.loc[df['en_account']] = a
但是我得到了以下错误:“[Index[..]\n dtype='object',length=28554]中没有一个在[Index]中。”
目前没有回答
相关问题 更多 >
编程相关推荐