Data-science vraagt andere hulpmiddelen. Allereerst zijn er grote hoeveelheden data nodig, dat ofwel een database vereist, maar wat misschien met Excel nog wel zou kunnen, maar Excel is te omslachtig en heeft geen groeimogelijkheden voor data-analyse.
Data science klinkt heel eenvoudig maar vraagt heel veel integriteit van de data en wanneer je ooit met excel bent begonnen, is die integriteit niet gewaardeerd.
Zo kwam ik zelf op het volgende probleem, van datum-gebruik waarmee ik ooit in Excel ben begonnen. OM het eenvoudig en sneller te maken kan je in excel een datum converteren naar een vijfcijferig nummer, dat haar oorsprong heeft in de berekening van het aantal dagen vanaf 1 januari 1900. Zo kom je bij tien maart 1986 op een nummer (in excel) van 31481.
Ik vroeg vervolgens aan de Copilot van Bing om datum in het dagelijkse formaat om te zetten via python in de seriele datum die ook excel gebruikt. zij kwamen met dit script:
def date2serialB(date_str):
try:
# Parse de datumstring in het formaat "jjjj-mm-dd"
date_object = datetime.strptime(date_str, "%Y-%m-%d")
# Bereken het aantal dagen sinds 1900-01-01
serialdate = (date_object - datetime(1900, 1, 1)).days + 1
return serialdate
except ValueError:
return "Ongeldige datumstring. Gebruik het formaat 'jjjj-mm-dd'."
# Voorbeeldgebruik:
##input_date = "2024-07-29"
##result = convert_to_serialdate(input_date)
##print(f"Serialdate voor {input_date}: {result}")
Ik vroeg het ook aan Gemini, omdat ik zeker wilde weten waar nu precies het verschil zat, zonder zelf te moeten graven, dat leverde dit script op:
def date2serial(date_string):
"""Converteert een datum in YYYY/MM/DD formaat naar een serieel getal
dat aangeeft hoeveel dagen er zijn verstreken sinds 1 januari 1900.
Args:
date_string: De datum als string in YYYY/MM/DD formaat.
Returns:
Het serieel getal.
"""
# Datum omzetten naar een datetime object
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d')
# Referentiedatum (1 januari 1900)
reference_date = datetime.datetime(1900, 1, 1)
# Bereken het verschil in dagen
delta = date_obj - reference_date
serial_number = delta.days
return serial_number
De uitkomst is dan als volgt:
- Excel zoals de datum via een interne excel-formule wordt geconverteerd: 31481
- Copilot: 31480
- Gemini: 31479
Wat ik al meer merk bij Data-science-achtig werk is dat het goed en integer krijgen van data veel werk kost. Maar ik merk nu ook dat details nog niet zo eenvoudig zijn. Nu begrijp ik waarom excel zo'n succes is geworden en hoe moeilijk en hoeveel moeite het kost om over te stappen van een commercieel programma (zoals excel) naar een meer professionele taal zoals python.
En... de groten der aarden worden nu al geroemd door hun AI-capaciteiten en investeringen (Capex) om AI-toekomst-ready te zijn, maar twee partijen, buigen over hetzelfde probleem en geven twee verschillende oplossingen, waar er maar een mogelijk zou moeten zijn. Dat zet toch te denken.
--
Reacties