|
|
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cells": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"attachments": {
|
|
|
|
|
|
|
|
"grafik.png": {
|
|
|
|
|
|
|
|
"image/png": "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 truncated
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
|
|
|
"id": "8e40a4b1",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"# Aufgabe: Welche Daten müssen zeitlich persistiert werden und wie können diese gespeichert werden?\n",
|
|
|
|
|
|
|
|
"Autor: Sebastian \\\n",
|
|
|
|
|
|
|
|
"Datum: 20-04-2023\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Eine Frage ist, welche Daten von Kapitalgesellschaften benötigt werden, um eine Historie zu visualisieren und auszuwerten.\n",
|
|
|
|
|
|
|
|
"Dafür werden Daten von Kapitalgesellschaften über **Statista** verwendet.\\\n",
|
|
|
|
|
|
|
|
"Für dieses Portal gibt es eine Hochschullizenz. Man kann sich über den folgenden Link anmelden: https://de.statista.com/login/campus/ und wählt die Fachhochschule Südwestfalen aus. \\\n",
|
|
|
|
|
|
|
|
"Man wird auf die Anmeldeseite der FH SWF geleitet, meldet sich dort an und willigt der Datenweitergabe zu.\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"> 20.04.2023: Für API ist ein Key notwendig, den es für die FH scheinbar nicht gibt! Daten müssen manuell ermittelt werden!\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"> Die Daten sind nicht homogen formatiert, d.h. Formatierung und Skalierung (Millonen, Milliarden €) müssen angepasst werden!\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"### Kennzahlen\n",
|
|
|
|
|
|
|
|
"In einer ersten Betrachtung werden die vorgeschlagenen Kennzahlen betrachtet:\n",
|
|
|
|
|
|
|
|
"- Umsatz\n",
|
|
|
|
|
|
|
|
"- EBIT\n",
|
|
|
|
|
|
|
|
"- EBIT Marge\n",
|
|
|
|
|
|
|
|
"- Bilanzsumme\n",
|
|
|
|
|
|
|
|
"- Eigenkapitalanteil (Eigenkapital / Bilanzsumme)\n",
|
|
|
|
|
|
|
|
"- Fremdkapitalanteil (Fremdkapital / Bilanzsumme)\n",
|
|
|
|
|
|
|
|
"- Verschuldungsgrad (Fremdkapital / Eigenkapital)\n",
|
|
|
|
|
|
|
|
"- Eigenkapitalrentabilität (EBIT/Eigenkapital)\n",
|
|
|
|
|
|
|
|
"- Umschlaghäufigkeit des Gesamtkapitals (Umsatz / Bilanzsumme) \n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Im Zuge des Projekts wäre es wünschenswert für jedes beteiligte Unternehmen eine Zeitreihe der oben genannten Kennzahlen zu erhalten, damit man sich die Historie ansehen und ggfs. mit anderen Unternehmen vergleichen kann.\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Als ersten Anhaltspunkt welche Unternehmen betrachtet werden, wurde nach den 10 größten deutschen Unternehmen gesucht:\n",
|
|
|
|
|
|
|
|
"https://www.ig.com/de/trading-strategien/die-groessten-unternehmen-deutschlands-und-der-welt-220715\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"|Platz |\tUnternehmen |\tBranche |\tMarktkapitalisierung (EUR) in Mrd.|\n",
|
|
|
|
|
|
|
|
"|---|---|---|---|\n",
|
|
|
|
|
|
|
|
"|1. |\tSAP |\tSoftware |\t101,8|\n",
|
|
|
|
|
|
|
|
"|2. |\tDeutsche Telekom |\tTelekommunikation |\t95,8|\n",
|
|
|
|
|
|
|
|
"|3. |\tVolkswagen Vz.| \tAutomobil |\t77,3|\n",
|
|
|
|
|
|
|
|
"|4. |\tSiemens |\tEisen / Stahl \t|77,2|\n",
|
|
|
|
|
|
|
|
"|5. |\tAllianz |\tVersicherung |\t74,3|\n",
|
|
|
|
|
|
|
|
"|6. |\tMercedes-Benz Group| \tAutomobil |\t58,8|\n",
|
|
|
|
|
|
|
|
"|7. |\tBayer| \tPharma |\t56,3|\n",
|
|
|
|
|
|
|
|
"|8. |\tSiemens Healthineers| \tMedical Equipment| \t54,1|\n",
|
|
|
|
|
|
|
|
"|9. |\tDeutsche Post| \tGütertransport| \t44,4|\n",
|
|
|
|
|
|
|
|
"|10. |\tBMW |\tAutomobil| \t44,4|\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Eine erste Idee:\n",
|
|
|
|
|
|
|
|
""
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
|
|
"execution_count": 45,
|
|
|
|
|
|
|
|
"id": "01459424",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"import numpy as np\n",
|
|
|
|
|
|
|
|
"import pandas as pd\n",
|
|
|
|
|
|
|
|
"import ipywidgets as widgets\n",
|
|
|
|
|
|
|
|
"pd.options.plotting.backend = \"plotly\""
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
|
|
|
"id": "a2d2f79a",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"**Einlesen der bestehenden Datensätze**"
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
|
|
"execution_count": 16,
|
|
|
|
|
|
|
|
"id": "4862a09e",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"dfEON=pd.read_csv('Data_Transparenzregister/EON_Data.csv', index_col=0, sep=';') \n",
|
|
|
|
|
|
|
|
"dfBASF=pd.read_csv('Data_Transparenzregister/BASF_Data.csv', index_col=0, sep=';') \n",
|
|
|
|
|
|
|
|
"dfTELEKOM=pd.read_csv('Data_Transparenzregister/TELEKOM_Data.csv', index_col=0, sep=';') "
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
|
|
"execution_count": 22,
|
|
|
|
|
|
|
|
"id": "9f84b5d6",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
|
|
"Umsatz [Mill. €] 73100.0\n",
|
|
|
|
|
|
|
|
"EBIT [Mill. €] 9160.0\n",
|
|
|
|
|
|
|
|
"EBITDA [Mill. €] NaN\n",
|
|
|
|
|
|
|
|
"Name: 2016, dtype: float64"
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"execution_count": 22,
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"output_type": "execute_result"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"#select a specific year\n",
|
|
|
|
|
|
|
|
"dfTELEKOM.loc[2016]"
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
|
|
|
"id": "51453575",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"### Mini GUI\n",
|
|
|
|
|
|
|
|
"Folgend wird eine minimale GUI implementiert, welche die drei Metriken (Umsatz, EBIT, EBITDA) von drei Unternehmen visualisiert."
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
|
|
"execution_count": 50,
|
|
|
|
|
|
|
|
"id": "c871a495",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
|
|
"application/vnd.jupyter.widget-view+json": {
|
|
|
|
|
|
|
|
"model_id": "9d5fd8316c744857930548ada689c0ca",
|
|
|
|
|
|
|
|
"version_major": 2,
|
|
|
|
|
|
|
|
"version_minor": 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
|
|
"interactive(children=(Dropdown(description='Company:', options=('BASF', 'EON', 'Telekom'), value='BASF'), Drop…"
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"def get_Data(company, metric):\n",
|
|
|
|
|
|
|
|
" if company=='BASF':\n",
|
|
|
|
|
|
|
|
" dfSelect=dfBASF\n",
|
|
|
|
|
|
|
|
" print('BASF')\n",
|
|
|
|
|
|
|
|
" if company=='EON':\n",
|
|
|
|
|
|
|
|
" dfSelect=dfEON\n",
|
|
|
|
|
|
|
|
" print('EON') \n",
|
|
|
|
|
|
|
|
" if company=='Telekom':\n",
|
|
|
|
|
|
|
|
" dfSelect=dfTELEKOM\n",
|
|
|
|
|
|
|
|
" print('Telekom') \n",
|
|
|
|
|
|
|
|
" fig=dfSelect.plot()\n",
|
|
|
|
|
|
|
|
" fig.show() \n",
|
|
|
|
|
|
|
|
" return\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"W_company=widgets.Dropdown(\n",
|
|
|
|
|
|
|
|
" options=['BASF', 'EON', 'Telekom'],\n",
|
|
|
|
|
|
|
|
" value='BASF',\n",
|
|
|
|
|
|
|
|
" description='Company:',\n",
|
|
|
|
|
|
|
|
" disabled=False,\n",
|
|
|
|
|
|
|
|
")\n",
|
|
|
|
|
|
|
|
"W_metric=widgets.Dropdown(\n",
|
|
|
|
|
|
|
|
" options=['EBIT', 'EBITDA', 'Volume'],\n",
|
|
|
|
|
|
|
|
" value='Volume',\n",
|
|
|
|
|
|
|
|
" description='Metric:',\n",
|
|
|
|
|
|
|
|
" disabled=False,\n",
|
|
|
|
|
|
|
|
")\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"out=widgets.interact(get_Data, company=W_company, metric=W_metric)"
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
|
|
|
"id": "fe99f2c6",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
|
|
"### Fazit\n",
|
|
|
|
|
|
|
|
"Mit wieviel Datensätzen müssen wir im Projekt rechnen? \\\n",
|
|
|
|
|
|
|
|
"Wir nehmen an, dass die Datenbank 100 deutsche Unternehmen beinhaltet, welches je mit 9 Metriken bewertet wird und max. 4 Daten punkte (Quartalszahlen) vorliegen. Ein realistischer Rückblick ist über die letzten 15 Jahre möglich, da ansonsten die Datengrundlage dünn wird. \n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Eine kurze Überschlagsrechnung ergibt: \n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"$\n",
|
|
|
|
|
|
|
|
"n_{Unternehmen} = 100 \\newline\n",
|
|
|
|
|
|
|
|
"n_{Metriken}=9 \\newline\n",
|
|
|
|
|
|
|
|
"n_{Datenpunkte pro Jahr }=4 \\newline\n",
|
|
|
|
|
|
|
|
"n_{Jahre} = 15 \\newline \\newline\n",
|
|
|
|
|
|
|
|
"n_{Datensätze} = n_{Unternehmen} *n_{Metriken} * n_{Datenpunkte pro Jahr } *n_{Jahre} \\newline \n",
|
|
|
|
|
|
|
|
"n_{Datensätze} = 100 * 9 * 4 * 15 = 54000 Datenpunkte\n",
|
|
|
|
|
|
|
|
"$\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"D.h. für jedes Unternehmen wären es 540 Datenpunkte, welche sich auf 9 Metriken aufteilen. \\\n",
|
|
|
|
|
|
|
|
"Diese Datenmenge (60 Einträge pro Metrik) könnte als **JTS json Time Series** abgespeichert werden.\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"### JTS - json Time series\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"Example for a jts document(https://docs.eagle.io/en/latest/reference/historic/jts.html):\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"``` json\n",
|
|
|
|
|
|
|
|
"{\n",
|
|
|
|
|
|
|
|
" \"docType\": \"jts\",\n",
|
|
|
|
|
|
|
|
" \"version\": \"1.0\",\n",
|
|
|
|
|
|
|
|
" \"header\": {\n",
|
|
|
|
|
|
|
|
" \"startTime\": \"2018-08-16T02:00:00.000Z\",\n",
|
|
|
|
|
|
|
|
" \"endTime\": \"2018-08-16T02:20:43.000Z\",\n",
|
|
|
|
|
|
|
|
" \"recordCount\": 5,\n",
|
|
|
|
|
|
|
|
" \"columns\": {\n",
|
|
|
|
|
|
|
|
" \"0\": {\n",
|
|
|
|
|
|
|
|
" \"id\": \"541a5a129bc9b4035f906d70\",\n",
|
|
|
|
|
|
|
|
" \"name\": \"Temperature\",\n",
|
|
|
|
|
|
|
|
" \"dataType\": \"NUMBER\",\n",
|
|
|
|
|
|
|
|
" \"renderType\": \"VALUE\",\n",
|
|
|
|
|
|
|
|
" \"format\": \"0.###\",\n",
|
|
|
|
|
|
|
|
" \"aggregate\": \"NONE\"\n",
|
|
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
|
|
" },\n",
|
|
|
|
|
|
|
|
" \"data\": [\n",
|
|
|
|
|
|
|
|
" {\n",
|
|
|
|
|
|
|
|
" \"ts\": \"2018-08-16T02:00:39.000Z\",\n",
|
|
|
|
|
|
|
|
" \"f\": { \"0\": {\"v\": 99, \"q\": 100, \"a\": \"site maintenance\"} }\n",
|
|
|
|
|
|
|
|
" },\n",
|
|
|
|
|
|
|
|
" {\n",
|
|
|
|
|
|
|
|
" \"ts\": \"2018-08-16T02:05:40.000Z\",\n",
|
|
|
|
|
|
|
|
" \"f\": { \"0\": {\"v\": 28.22 } }\n",
|
|
|
|
|
|
|
|
" },\n",
|
|
|
|
|
|
|
|
" {\n",
|
|
|
|
|
|
|
|
" \"ts\": \"2018-08-16T02:10:41.000Z\",\n",
|
|
|
|
|
|
|
|
" \"f\": { \"0\": {\"a\": \"sensor recalibrated\" } }\n",
|
|
|
|
|
|
|
|
" },\n",
|
|
|
|
|
|
|
|
" {\n",
|
|
|
|
|
|
|
|
" \"ts\": \"2018-08-16T02:15:42.000Z\",\n",
|
|
|
|
|
|
|
|
" \"f\": { \"0\": {\"v\": 29.2, \"q\": 100 } }\n",
|
|
|
|
|
|
|
|
" },\n",
|
|
|
|
|
|
|
|
" {\n",
|
|
|
|
|
|
|
|
" \"ts\": \"2018-08-16T02:20:43.000Z\",\n",
|
|
|
|
|
|
|
|
" \"f\": { \"0\": {\"v\": 29.18 } }\n",
|
|
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
|
|
" ]\n",
|
|
|
|
|
|
|
|
"}\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"```\n",
|
|
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"### Mongo DB\n",
|
|
|
|
|
|
|
|
"Mongo DB bietet die Möglichkeit auch Zeitseriendaten zu persistieren. Das bietet den Vorteil nicht mehrere Datenbanksysteme für die Entitäten und Zeitserien aufzusetzen, sondern ein Datenbanksystem zu verwenden."
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
|
|
|
"id": "37033e3e",
|
|
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
|
|
"source": []
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"metadata": {
|
|
|
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
|
|
|
"display_name": "Python 3",
|
|
|
|
|
|
|
|
"language": "python",
|
|
|
|
|
|
|
|
"name": "python3"
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"language_info": {
|
|
|
|
|
|
|
|
"codemirror_mode": {
|
|
|
|
|
|
|
|
"name": "ipython",
|
|
|
|
|
|
|
|
"version": 3
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"file_extension": ".py",
|
|
|
|
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
|
|
|
|
"name": "python",
|
|
|
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
|
|
|
|
"version": "3.8.8"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
|
|
|
"nbformat_minor": 5
|
|
|
|
|
|
|
|
}
|