import pandas as pd import re def dig_it(search_in, fl_point=100, pattern=r'\d+'): if re.search('-', search_in): return -int(''.join(re.findall(pattern, search_in))[:-2]) +\ -int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point else: return int(''.join(re.findall(pattern, search_in))[:-2]) +\ int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point info_df = pd.read_csv('transi.csv', nrows=5, skiprows=5) # print(info_df) trans_df = pd.read_csv('transi.csv', skiprows=16, keep_default_na=False) def isdebit(value): try: dig_it(value) return True except ValueError: return False def statm_transactions(elem): if isdebit(elem[4]) is False: CD_mark = 'C' else: CD_mark = 'D' # try: if re.search('-', elem[4]): elem[4] = elem[4].replace('-', '') # except TypeError: # pass # try: if re.search(',|.', elem[4]): elem[4] = elem[4].replace(',', '').replace('.', ',') if re.search(',|.', elem[5]): elem[5] = elem[5].replace(',', '').replace('.', ',') # except TypeError: # pass if isdebit(elem[4]): tr = ':61:' + elem[0][2:4] + elem[0][5:7] + elem[0][8:10] + elem[0][5:7] +\ elem[0][8:10] + CD_mark + elem[4] + 'NTRF' + str(elem[3]) + '\n' inf = elem[2] + '\n' more_inf = ':86:' + '+31' + ''.join(elem[2].split(sep=';')[-2:-1]) +\ '\n' + '+32' + ''.join(elem[2].split(sep=';')[-3:-2]) return tr + inf + more_inf else: tr = ':61:' + elem[0][2:4] + elem[0][5:7] + elem[0][8:10] + elem[0][5:7] +\ elem[0][8:10] + CD_mark + elem[5] + 'NTRF' + str(elem[3]) + '\n' inf = elem[2] + '\n' more_inf = ':86:' + '+31' + ''.join(elem[2].split(sep=';')[-2:-1]) +\ '\n' + '+32' + ''.join(elem[2].split(sep=';')[-3:-2]) return tr + inf + more_inf # print(isdebit(trans_df.values[0][4])) # for i in trans_df.values: # print(i[2]) # # print(dig_it(trans_df.values[0][4])) # transactions = map(statm_transactions, trans_df.values) # # # # for i in transactions: print(i)