Optimera kassaflödesanalys med Pandas och MongoDB

Kassaflödesanalys är en kritisk del av ekonomistyrning, och med Python, Pandas och MongoDB kan vi automatisera och optimera analysen för att snabbt identifiera likviditetsproblem och förbättra affärsbeslut.

I denna artikel går vi igenom:
✅ Hur vi hämtar och lagrar transaktionsdata i MongoDB
✅ Bearbetning av kassaflödesdata med Pandas
✅ Automatiserad analys av in- och utflöden
✅ Skapande av en visuell rapport med nyckeltal


1. Importera transaktionsdata från MongoDB

MongoDB är en perfekt lösning för ekonomidata eftersom det hanterar stora datamängder och kan lagra transaktioner i realtid.

Exempel: Hämta kassaflödesdata från MongoDB

from pymongo import MongoClient
import pandas as pd

# Anslut till MongoDB
client = MongoClient("mongodb://localhost:27017/")
db = client["finance_db"]
collection = db["cashflow"]

# Hämta transaktioner
data = list(collection.find({}, {"_id": 0}))  # Hämtar alla transaktioner utan _id-fältet

# Konvertera till Pandas DataFrame
df = pd.DataFrame(data)

# Konvertera datum till korrekt format
df["datum"] = pd.to_datetime(df["datum"])

print(df.head())

✅ Nu har vi transaktionsdata redo för analys!


2. Analysera kassaflödet per månad

Vi grupperar transaktioner för att se hur mycket pengar som kommer in och går ut varje månad.

Exempel: Beräkna in- och utflöden

# Skapa en månadskolumn
df["månad"] = df["datum"].dt.to_period("M")

# Dela upp inkomster och utgifter
df["inflow"] = df["belopp"].apply(lambda x: x if x > 0 else 0)
df["outflow"] = df["belopp"].apply(lambda x: -x if x < 0 else 0)

# Summera per månad
cashflow_summary = df.groupby("månad")[["inflow", "outflow"]].sum()

print(cashflow_summary)

✅ Nu ser vi nettokassaflödet per månad!


3. Identifiera likviditetsproblem

Vi vill upptäcka månader där kassaflödet är negativt.

Exempel: Markera månader med negativt kassaflöde

# Beräkna nettokassaflöde
cashflow_summary["net_cashflow"] = cashflow_summary["inflow"] - cashflow_summary["outflow"]

# Identifiera månader med negativt kassaflöde
negative_cashflow = cashflow_summary[cashflow_summary["net_cashflow"] < 0]

print("Månader med negativt kassaflöde:\n", negative_cashflow)

✅ Nu ser vi vilka perioder som kräver åtgärder!


4. Förutse framtida kassaflöden med rullande medelvärde

Ett rullande medelvärde hjälper oss att förutse framtida trender i kassaflödet.

Exempel: Beräkna rullande 3-månaders medelvärde

cashflow_summary["rolling_avg"] = cashflow_summary["net_cashflow"].rolling(window=3).mean()

print(cashflow_summary)

✅ Nu får vi en bättre bild av långsiktiga trender!


5. Visualisera kassaflödet med Matplotlib

För att snabbt förstå trender är det bra att visualisera kassaflödet.

Exempel: Skapa en linjediagram över nettokassaflödet

import matplotlib.pyplot as plt

cashflow_summary["net_cashflow"].plot(kind="line", title="Nettokassaflöde över tid", ylabel="Belopp", xlabel="Månad")
plt.axhline(y=0, color="red", linestyle="--")  # Markera nollgränsen
plt.show()

✅ Nu kan vi snabbt se när kassaflödet blir negativt!


6. Automatiserad rapportering av kassaflödet

För att underlätta rapporteringen kan vi exportera analysen till en Excel-fil.

Exempel: Skapa en kassaflödesrapport i Excel

with pd.ExcelWriter("kassaflödesrapport.xlsx") as writer:
    cashflow_summary.to_excel(writer, sheet_name="Kassaflödesanalys")
    negative_cashflow.to_excel(writer, sheet_name="Negativa månader")

print("Kassaflödesrapporten är genererad!")

✅ Nu har vi en färdig analysrapport redo att skickas till ledningen!


Slutsats

Genom att använda Pandas och MongoDB för kassaflödesanalys kan vi:
Automatisera hantering av kassaflödesdata
Identifiera perioder med negativt kassaflöde
Förutse framtida likviditetsproblem
Generera detaljerade rapporter och visualiseringar

Vill du implementera detta i din verksamhet? Hör av dig!

Leave a comment

Your email address will not be published. Required fields are marked *