Erstellung

This commit is contained in:
2024-12-01 17:49:02 +01:00
commit e957b821a0

118
ghostfolio_conversion.py Normal file
View File

@@ -0,0 +1,118 @@
# Dieses Skript liest die von Easybank exportierten .csv-Dateien ein und konvertiert sie zu Ghostfolio-kompatiblen .csv-Dateien
import pandas
import csv
# Datei einlesen
file = input('Name of Input-File (without .csv): ') + ".csv"
# Header und Datenzeile für Ghostfolio.csv anlegen
header = ['Date','Code','DataSource','Currency','Price','Quantity','Action','Fee','accountId']
data = [None,None,'YAHOO','EUR',None,'1','dividend','0.00','3054673f-165a-4302-b340-8133a1667e80']
# Bankauszug (ohne Header) in Dataframe schreiben
raw_df = pandas.read_csv(file, sep=';', header=None)
# Nichtbenötigte Spalten entfernen
df = raw_df.drop(raw_df.columns[[0,3,5]], axis=1)
# Header für Importfile schreiben
with open('ghostfolio_import.csv', 'a', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
writer.writerow(header)
# Durch alle Zeilen der Ausgangsdatei durchiterieren und dann Zeile passend in Importfile schreiben
for i in range(df.shape[0]):
# Aktiencode feststellen
# Altlasten
if 'TELENOR' in str((df.iloc[i, 0])):
data[1] = "TEQ.F"
elif 'WOODSIDE' in str((df.iloc[i, 0])):
data[1] = "WOP0.F"
elif 'SHELL' in str((df.iloc[i, 0])):
data[1] = "R6C0.F"
elif 'HSBC' in str((df.iloc[i, 0])):
data[1] = "HBC2.F"
elif 'CIBC' in str((df.iloc[i, 0])):
data[1] = "CAI.F"
elif 'SCOTIA' in str((df.iloc[i, 0])):
data[1] = "BKN.F"
elif 'BARRATT' in str((df.iloc[i, 0])):
data[1] = "3BA.F"
elif 'WOODSIDE' in str((df.iloc[i, 0])):
data[1] = "WOP0.F"
elif 'CNOOC' in str((df.iloc[i, 0])):
data[1] = "NC2B.F"
elif 'VOEST' in str((df.iloc[i, 0])):
data[1] = "VAS.F"
elif 'STARBUCKS' in str((df.iloc[i, 0])):
data[1] = "SRB.F"
elif 'SOUTH' in str((df.iloc[i, 0])):
data[1] = "32Z.F"
elif 'PHILIPS' in str((df.iloc[i, 0])):
data[1] = "PHIA.F"
# Portfolio
elif 'ABBVIE' in str((df.iloc[i, 0])):
data[1] = "4AB.F"
elif 'RTX' in str((df.iloc[i, 0])):
data[1] = "5UR.F"
elif 'MERCK' in str((df.iloc[i, 0])):
data[1] = "6MK.F"
elif 'ORGANON' in str((df.iloc[i, 0])):
data[1] = "7XP.F"
elif 'AIRBUS' in str((df.iloc[i, 0])):
data[1] = "AIR.F"
elif 'BHP' in str((df.iloc[i, 0])):
data[1] = "BHP1.F"
elif 'CATERPILLAR' in str((df.iloc[i, 0])):
data[1] = "CAT1.F"
elif 'COCA-COLA' in str((df.iloc[i, 0])):
data[1] = "CCC3.F"
elif 'CISCO' in str((df.iloc[i, 0])):
data[1] = "CIS.F"
elif 'DEUTSCHE POST' in str((df.iloc[i, 0])):
data[1] = "DHL.F"
elif 'JOHNSON + JOHNSON' in str((df.iloc[i, 0])):
data[1] = "JNJ.F"
elif 'KRAFT HEINZ' in str((df.iloc[i, 0])):
data[1] = "KHNZ.F"
elif 'LEGAL' in str((df.iloc[i, 0])):
data[1] = "LGI.F"
elif 'LOCKHEED MARTIN' in str((df.iloc[i, 0])):
data[1] = "LOM.F"
elif 'MERCEDES-BENZ' in str((df.iloc[i, 0])):
data[1] = "MBG.F"
elif 'MCDONALDS' in str((df.iloc[i, 0])):
data[1] = "MDO.F"
elif '3M' in str((df.iloc[i, 0])):
data[1] = "MMM.F"
elif 'PFIZER' in str((df.iloc[i, 0])):
data[1] = "PFE.F"
elif 'RHEINMETALL' in str((df.iloc[i, 0])):
data[1] = "RHM.F"
elif 'DISTRI' in str((df.iloc[i, 0])):
data[1] = "RYE.F"
elif 'ROYAL' in str((df.iloc[i, 0])):
data[1] = "RYE.F"
elif 'SIEMENS' in str((df.iloc[i, 0])):
data[1] = "SIE.F"
elif 'AT + T' in str((df.iloc[i, 0])):
data[1] = "SOBA.F"
elif 'UNILEVER' in str((df.iloc[i, 0])):
data[1] = "UNVA.F"
elif 'BANK OF CHINA' in str((df.iloc[i, 0])):
data[1] = "W8V.F"
else:
data[1] = "MISSING"
# Datum feststellen
data[0] = str((df.iloc[i, 1]))
#Dividende feststellen
dividend = str(df.iloc[i, 2]).replace('+', '').replace(',', '.')
data[4] = float(dividend)
# Daten-Zeile in Import-File schreiben
with open('ghostfolio_import.csv', 'a', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
writer.writerow(data)