A script to convert CSV exported from Sparebanken Sør to a format YNAB can import
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.0KB

  1. import pandas as pd
  2. from bank_parsers.helpers import parse_norwegian_date, parse_norwegian_number, convert_memo
  3. def parse_sparebanken_norge(data):
  4. """
  5. Parse Sparebanken Norge bank data
  6. """
  7. result = []
  8. for _, row in data.iterrows():
  9. status = row.get('Status')
  10. if pd.isna(status):
  11. continue
  12. cleared = status == "Bokført"
  13. if row.get('Valuta') != 'NOK':
  14. raise ValueError(f"Unknown currency {row['Valuta']} in row:\n{row}")
  15. payee = convert_memo(row.get('Beskrivelse', ''))
  16. memo = convert_memo(row.get('Melding/KID/Fakt.nr', ''))
  17. date = row.get('Bokført dato') if cleared else row.get('Utført dato')
  18. result.append({
  19. 'Date': parse_norwegian_date(date),
  20. 'Payee': payee,
  21. 'Memo': memo,
  22. 'Outflow': -parse_norwegian_number(row['Beløp ut']) or 0,
  23. 'Inflow': parse_norwegian_number(row['Beløp inn']) or 0,
  24. 'Cleared': cleared,
  25. })
  26. return pd.DataFrame(result)