Pandas HDF5上的奇怪行为 - read_hdf没有返回结果

时间:2017-06-05 20:22:26

标签: python arrays pandas numpy pytables

所以我正在尝试阅读HDF5文件。我正在读取一列字符串值,但该列可以包含纯数字的值,但是它们必须被视为字符串。例如,user_value = 5RDFU,user_value = 12345都是用户ID。但是在查询时如下,

query_reporter = "{user_id}={user_value}".format(user_id='User ID', user_value=str(my_user_value))

# In the above code User ID is the column name and my_user_value can be 5RDFU, 12345 etc. 

data_frame = get_partial_hdf_node(K.hdf_store_path, query_reporter, key)

def get_partial_hdf_node(hdfstore, query, key):
   store = pd.HDFStore(hdfstore, mode='r')
   #data_frame = pd.read_hdf(hdfstore, key, where=query)
   data_frame = store.select(key, where=query)
   store.close()
   return data_frame

当user_value无法表示为数字时,这非常有效。例如,如果它是44567TY左右。但是如果值可以表示为整数,则失败。 12345失败,出现以下错误。

TypeError: Cannot compare 12345 of type <class 'int'> to string column

我检查了负责将其转换为字符串的pytables代码,并在site-packages / pandas / core / computation / pytables.py文件中的pytables.py上的第214行之后添加了这些行。

    elif not isinstance(v, string_types):
        v = stringify(v)
        return TermValue(v, stringify(v), u('string'))

现在Type错误不存在但它仍然返回一个空数据帧。

任何帮助导航此问题的人都非常感谢:)

0 个答案:

没有答案