O'Reilly logo

Python Programming On Win32 by Mark Hammond, Andy Robinson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Multidimensional Analysis of Financial Data

Our BookSet and Transaction classes can be thought of as classifying amounts of money by time and by account—a 2D classification. In fact, many standard financial reports follow a format of months across the top, and accounts (drawn from some level of the tree) down the left. Previously, we saw how to extend the system to add any attributes we wish. This effectively makes it a multidimensional model. Analyzing multidimensional data is a big business currently using the buzzword OLAP (online analytical processing). Furthermore, a common problem is to ensure the integrity of the double-entry while querying and selecting subsets of data. There is almost have a data warehouse in our BookSet; however, it’s currently optimized for adding, editing, and deleting transactions, not for querying.

To query the BookSet , flatten the transactions into a separate list of facts per line. Taking the sales transaction earlier, you might extract something like what’s in Table 6.1.

Table 6.1. Multidimensional Analysis of Accounts

Date

Account

Customer

Project

Amount

27-Apr-1999

...Income.Consulting

HugeCo

P1

-15000

27-Apr-1999

...Income.Consulting

HugeCo

P2

-10000

27-Apr-1999

...Creditors

HugeCo

(none)

25000

This kind of fact-table structure is as easy to analyze in Python as it is in SQL. However, Python has a big advantage over the database world in that it’s not tied to particular sets of facts, or column headings, beforehand. Transactions ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required