1

を使用してpandas.HDFStoreいますが、やりたいことの説明が見つかりません。つまりselect、値にフィルターを指定してメソッドを使用します。

私が達成したいことは次のとおりです。table列が整数のように見える文字列であるストアに があり、ドキュメントに書かれているように値をフィルタリングできるようにしたいと考えています。

store.select('dfq',where="A>0 or C>0")

私の列名は次のとおりです。

In[28]: hs.select('/Data', stop=3).columns
Out[28]: 
Index(['2008', '2010', '2012', [...])

だから、私はこれを試しました:

In[29]: t = hs.select('/Data', stop=30, columns=['2008'], where='2008>0')

しかし、次の例外があります。

Traceback (most recent call last):
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-29-53380a428bf5>", line 1, in <module>
    t = hs.select('/Data', stop=30, columns=['2008'], where='2008>0')
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 669, in select
    return it.get_result()
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 1352, in get_result
    results = self.func(self.start, self.stop, where)
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 662, in func
    columns=columns, **kwargs)
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 3990, in read
    if not self.read_axes(where=where, **kwargs):
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 3196, in read_axes
    self.selection = Selection(self, where=where, **kwargs)
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 4545, in __init__
    self.condition, self.filter = self.terms.evaluate()
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\computation\pytables.py", line 580, in evaluate
    self.condition = self.terms.prune(ConditionBinOp)
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\computation\pytables.py", line 118, in prune
    res = pr(left.value, right.value)
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\computation\pytables.py", line 113, in pr
    encoding=self.encoding).evaluate()
  File "C:\Users\bourgault_j\AppData\Local\Anaconda3\lib\site-packages\pandas\computation\pytables.py", line 317, in evaluate
    raise ValueError("query term is not valid [%s]" % self)
ValueError: query term is not valid [[Condition : [None]]]

次の式でも試しましたが、結果は同じです。

hs.select('/Data', stop=30, columns=['2008'], where='"2008">0')

この場合、誰か私にヒントがありますか?

これらの列名は、コードの他の部分でキーとして使用されるため、そのままにしておくことをお勧めします。

追加メモ: 私はすでに次のようなクールなことを行うことができます:

hs.select('/Data', columns=['2008'], where='index>"2015-10-19 14:49:00.01"')
4

0 に答える 0