В скрипте python, который я сейчас делаю, есть:
У меня есть 2 столбца:
Сумма (Ca sh books)
Сумма (банковские записи)
То, что я делаю:
- Найдите их разницу и добавьте к 'РАЗНИЦУ 'столбец для сравнения их значений
- Добавление примечаний в столбец «ЗАМЕЧАНИЯ».
Вот примечания, которые должны быть перечислены:
a. СОГЛАСОВАНО, если РАЗНИЦА = 0
b. ПЕРЕЗАПИСЬ, если РАЗНИЦА> 0, но не равна наименьшему
c. NOT YET ENCASHED, если DIFFERENCE> 0 и равно minuend (или вычитаемому 0)
d. ЗАПИСЬ, если ОТЛИЧИЕ <0, но не равно вычитаемому </p>
e. UNRECORDED, если DIFFERENCE <0 и равно вычитаемому (или minuend равно 0) </p>
Вот мой код:
import pandas as pd
df3 = pd.read_csv('DB3-BankRecon.csv',encoding='latin-1', index_col= False, thousands= ',',decimal=b'.') #df3 because this is the 3rd dataframe
amount1, amount2 = df3[' AMOUNT (Cash books)'], df3[' AMOUNT (Bank Records)']
diff = amount1 - amount2
df3['DIFFERENCE'] = diff #Created 'DIFFERENCE' column and save the difference
df3['REMARKS'] = '' #REMARKS column
for row in diff: #rows in DIFFERENCE column
for cashrow in amount1: #rows in AMOUNT (Cash books)
for bankrow in amount2: #rows in AMOUNT (Bank Records)
try:
if row != 0:
if row > 0:
if row < cashrow:
df3['REMARKS'] = 'Over-Recording'
else:
df3['REMARKS'] = 'Not yet encashed'
elif row < 0:
if abs(row) < bankrow:
df3['REMARKS'] = 'Under-Recording'
else:
df3['REMARKS'] = 'Unrecorded'
else: # row == 0
df3['REMARKS'] = 'Matched'
except:
print('Error')
df3.to_csv('Try.csv', index=False)
каждый раз, когда я запускаю результаты в коде VS, все в порядке (особенно условия)
, но когда я добавляю результаты РАЗЛИЧИЙ и ЗАМЕЧАНИЯ к данным в фрейм, все значения ЗАМЕЧАНИЯ становятся «СОВМЕСТНЫМИ», даже если они не являются.
[Вот скриншот csv file] [1]
Как решить эту проблему?
всего за месяц в Python.
Заранее спасибо:)
ОБНОВЛЕНИЕ: (Спасибо за ответы :))
Вот пример ввода: (CSV-файл открыт в блокноте)
AMOUNT(Cash books),AMOUNT(Bank Records)
1065.00,1065.00
1056.40,1056.40
1038.60,1033.60
1027.98,1072.98
1027.00,0.00
0.00,1015.44
1001.66,1001.66
1001.50,1001.50
Ожидаемый результат
AMOUNT (Cash books) | AMOUNT (Bank Records) | DIFFERENCE | REMARKS
1065.00 | 1065.00 | 0.00 | Matched
1056.40 | 1056.40 | 0.00 | Matched
1038.60 | 1033.60 | 5.00 | Over-Recording
1027.98 | 1072.98 | -45.00 | Under-Recording
1027.00 | 0.00 | 1,027.00 | Not yet encashed
0.00 | 1015.44 | -1,015.44 | Unrecorded
1001.66 | 1001.66 | 0.00 | Matched
1001.50 | 1001.50 | 0.00 | Matched
Примечание. Когда я запускаю код в редакторе, не сохраняя его в файле csv, я получаю ожидаемый вывод ЗАМЕЧАНИЯ. но когда я пытаюсь сохранить его в фрейме данных и в файле, все это приводит к 'MATCHED'.
Спасибо за помощь:)