0

私はExcelにテーブルを持っていて、それを読み取れるようにしたい(これを実現する方法を知っている)が、Pythonに、d、D、およびBの特定の値がある場合、それが上部のディメンション値を返すように指示するプログラムの変数としての最初の行。交差点に関するいろいろな投稿を読んだのですが、探していたものかどうかわからないので、自分で質問することにしました。

私のExcelテーブルは次の形式になっています(画像を投稿できないため、ほんの一例です)。

                      Dimensions
d      D  |  17      27    37     47       17-47
          |                B           |   rsmin
0.6    2     0.8     -     -       -       0.05
1    2.5     1       -     -       -       0.05
1.5    3     1       -     1.8     -       0.05
2      4     1.2     -     2       -       0.05

例をとると、ad = 2、D = 4(これらの2つの値は常に同じ行にあります)、B = 2です。したがって、値Dimension=37をプログラムに返します。また、読み取るワークシートが複数あるという問題もあるため、このテーブルをTable1と呼び、最初に、同じ.xlsファイルにそれぞれ1つのテーブルを含むすべてのワークシートを読み取る必要があります。

4

1 に答える 1

1

必要なものについての推測に基づいて、テーブルを検索する方法は次のとおりです。あなたは自分でループオーバー5テーブルスタントを行うことができるはずです。

def search(table_iterator, d, D, B):
    headings = next(table_iterator)
    junk = next(table_iterator)
    key = [d, D]
    for row in table_iterator:
        if row[0:2] != key: continue
        for index, value in enumerate(row[2:-1]):
            if value == B: 
                return headings(2 + index)
    return None

コメントで質問された後に更新します:

"" "これにより、必要なディメンション値が返されますか?" ""

はい、そうすべきです。しかし、それは一般化されたアプローチです。「gimmetehcodez」の質問には文字通り答えません。テーブルを読み取るツール(おそらくxlrd)に適した「table_iterator」を作成するか、ガイドとして使用する疑似コードとして扱い、完全に書き直して、道具。

"" "最終的に、すべてのテーブルを1つの.xlsドキュメントにコンパイルしましたが、複数のワークシートを使用しました。すべてのワークシートを検索してからこのコードを適用する特別な方法はありますか?" ""

私が言ったように、あなたは自分でループオーバー5テーブルスタントを行うことができるはずです。すべてのワークシートを検索してからこのコード適用するのは奇妙なアプローチのようです。一致する行が見つかるまで、ワークシートを繰り返し処理して、各ワークシートを検索する必要があります。

于 2011-11-23T11:26:31.493 に答える