【发布时间】:2015-02-05 21:47:22
【问题描述】:
如何通过使用 Pandas 比较 hdf5 文件中的两列来选择一些行? hdf5 文件太大而无法加载到内存中。例如,我想选择 A 列和 B 列相等的行。数据框保存在文件“mydata.hdf5”中。谢谢。
import pandas as pd
store = pd.HDFstore('mydata.hdf5')
df = store.select('mydf',where='A=B')
这不起作用。我知道 store.select('mydf',where='A==12') 会起作用。但我想比较 A 列和 B 列。示例数据如下所示:
A B C
1 1 3
1 2 4
. . .
2 2 5
1 3 3
【问题讨论】:
-
这是错字吗:
df = store.select('mydf',where='A=B')?不应该是:df = store.select('mydf',where='A==B')即 2==s? -
@EdChum,感谢您的快速回复。但是'A=B'和'A==B'都可以。错误如下: c:\python33\lib\site-packages\pandas\computation\pytables.py in convert_value(self, v) 184 return TermValue(int(v), v, kind) 185 elif kind == u ('integer'): --> 186 v = int(float(v)) 187 return TermValue(v, v, kind) 188 elif kind == u('float'): ValueError: could not convert string to float: 'chr_b'
标签: select pandas where hdf5 hdfstore