Codebeispiel Anomalienerkennung in Python: Interaktion von Python und Caseware IDEA mittels win32com.client

# Import von IDEA-Daten und Anomalie-Erkennung
import win32com.client as win32
import pandas as pd
import numpy as np
from sklearn.ensemble import IsolationForest

# IDEA-Verbindung herstellen
idea = win32.Dispatch("Idea.IdeaClient")
db = idea.OpenDatabase("Rechnungsdaten.IMD")

# Daten nach Pandas exportieren
data = []
for i in range(1, db.Count + 1):
    rec = db.ReadRow(i)
    data.append({
        'Betrag': float(rec.Value("BETRAG")), 
        'Tag': rec.Value("TAG"),
        'ID': rec.Value("RECHNUNGS_ID")
    })

df = pd.DataFrame(data)

# Anomalie-Erkennung mit Isolation Forest
model = IsolationForest(contamination=0.05)
df['anomalie'] = model.fit_predict(df[['Betrag']])
anomalien = df[df['anomalie'] == -1]

# Ergebnis in IDEA importieren
# Anomalien als neue Datenbank speichern
output_path = idea.WorkingDirectory + "\Anomalien.xlsx"
anomalien.to_excel(output_path)

# In IDEA importieren
idea.ImportExcel(output_path, "Anomalien", "", "", "", 1)