python - Pandas HDFStore 表不接受多索引列

标签 python pandas pytables

这工作正常:

cols = ['X', 'Y']
ind = [('A', 1), ('B', 2)]
ind = pd.MultiIndex.from_tuples(index, names=['foo', 'number'])

df = pd.DataFrame(rand(2,2), columns = cols, index=ind)
store.put('df', df, table=True)
print store['df']

               X         Y
foo number                    
A   1       0.015005  0.213427
B   2       0.090311  0.595418

这会破坏:

cols = [('X', 1), ('Y', 2)]
cols = pd.MultiIndex.from_tuples(index, names=['bar', 'number'])
ind = [('A', 1), ('B', 2)]
ind = pd.MultiIndex.from_tuples(index, names=['foo', 'number'])

df = pd.DataFrame(rand(2,2), columns = cols, index=ind)
store.put('df', df, table=True)
print store['df']

KeyError: u'no item named foo'

我怀疑这是使用 PyTables 的已知限制,但我在 Pandas 文档中找不到任何引用资料表明多重索引实际上仅限于索引,而不是列。

最佳答案

不支持此功能,例如既是列多索引又是索引多索引。任何一个都可以单独工作。然而,一般来说,列多索引不是很有用,因为如果没有一些非常奇怪的语法就不可能从中进行选择(列存储为元组,因此必须显式选择它们)。所以无论如何我都不会推荐它。

我将提出一个问题来支持两者,因为它当前提出,无论如何,请参见此处:https://github.com/pydata/pandas/issues/5823

关于python - Pandas HDFStore 表不接受多索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888226/

相关文章:

python - 每行Pandas DataFrame Rest Call

python - 从 HDF5 文件读取和写入 numpy 数组

python - bool 注释导致重复?

python - 从运行 fedora 的系统为我的 python 应用程序创建 debian 包

python - Pandas 数据框,按最后一列的最后一列拆分数据,但保留其他列

python - 如何防止多值字典对象将每个单词拆分为单独的字母字符串?

python - PyTables 批量获取和更新

numpy - 对非常大的一维数组进行排序

python - 在 Python 中检测软 404 重定向

python - Twisted 应用程序在 OS X 上失败并出现错误 "Failed to load application: No module named OpenSSL.SSL"