所以我正在尝试阅读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错误不存在但它仍然返回一个空数据帧。
任何帮助导航此问题的人都非常感谢:)