6

私は新しい仕事のプログラミング演習として Python でクロス集計ライブラリを実装しています。要件の実装は機能しますが、洗練されておらず冗長です。それには、フラット ファイルに表形式のデータとして格納された基本モデルと、これについて求められる可能性のあるすべての統計分析結果との間で、データをきれいに移動できるような、より優れたモデルが必要です。

現在、テーブル内の各行のタプルのセットから、対象のタプルの出現頻度をカウントするヒストグラム、そして出力をセットにコンパイルするシリアライザーへと進んでいます。表示するテーブル セルの数。ただし、十分な情報が配置されていないため、テーブルやヒストグラムに必要以上に頻繁に戻る必要があります。

それで、何かアイデアはありますか?

編集:これはいくつかのデータの例であり、そこから構築できるようにしたいものです。ご了承ください "。" 条件付きでのみカウントされる「欠落」データのビットを示します。

1   .   1
1   0   3
1   0   3
1   2   3
2   .   1
2   0   .
2   2   2
2   2   4
2   2   .

上記の列 0 と 2 の間の相関関係を見ていたら、次の表が表示されます。

    . 1 2 3 4
1   0 1 0 3 0
2   2 1 1 0 1

さらに、頻度/合計、頻度/小計などの比率を計算できるようにしたいと思います。

4

4 に答える 4

1

SW は、このための優れた基本的なレシピを activestate.com に投稿しています。

どうやら本質は…

  1. xsort=[] と ysort=[] を軸の配列として定義します。データを反復処理するか、他の方法でそれらを設定します。
  2. データを反復処理し、rs[yvalue][xvalue] をインクリメントすることにより、rs={} を集計データの辞書の辞書として定義します。必要に応じて不足しているキーを作成します。

たとえば、行 y の合計は次のようになります。sum([rs[y][x] for x in xsort])

于 2011-07-15T02:11:19.297 に答える
1

インメモリsqliteデータベースをデータ構造として使用し、必要な操作を SQL クエリとして定義できます。

import sqlite3

c = sqlite3.Connection(':memory:')
c.execute('CREATE TABLE data (a, b, c)')

c.executemany('INSERT INTO data VALUES (?, ?, ?)', [
    (1, None,    1),
    (1,    0,    3),
    (1,    0,    3),
    (1,    2,    3),
    (2, None,    1),
    (2,    0, None),
    (2,    2,    2),
    (2,    2,    4),
    (2,    2, None),
])

# queries
# ...
于 2009-06-20T23:03:24.147 に答える
-1

HTML テーブルを使用して保存しないのはなぜですか? 最高ではないかもしれませんが、非常に簡単にブラウザーで表示できます。

編集:

質問を読み直したところ、ストレージ モデルではなくデータ モデルを求めています。その質問に答えるには...

それはすべて、データをどのように報告するかにかかっています。たとえば、多くのピボットや集計を行う場合は、列の主要な順序で格納する方が理にかなっている可能性があります。この方法では、たとえば、列を合計してカウントを取得できます。

どのような種類の情報を抽出しようとしているのかを説明すると、非常に役立ちます。

于 2009-06-19T19:29:09.403 に答える