Pandas对于具有层次索引:https://pandas.pydata.org/pandas-docs/stable/advanced.html的数据帧具有很好的功能,但是它主要针对层次深度恒定的情况。是否存在一种标准的,也许功能较少的方法来使数据框具有随深度变化的层次结构索引?
我实际上并不需要MultiIndex的部分索引,分组和堆叠/拆栈功能,而通过原始元组对列进行索引的数据框将满足我的需求。
我想做以下事情:
import pandas as pd
df = pd.DataFrame({
("a",): [1],
("b",): [2],
("x", 1): [3],
("x", 2): [4]
})
但是,对于我而言,在这种情况下,熊猫的默认MultiIndex有点过分急切。例如,它使第一列的“ true”索引为("a", nan)
。然后df[("a",)]
返回其索引以("a",)
开头的所有列,例如像("a", 1)
这样的列。
一种选择是做类似的事情
import pandas as pd
df = pd.DataFrame({
"a": [1],
"b": [2],
("x", 1): [3],
("x", 2): [4]
})
会创建一个由字符串和元组混合索引的数据框,但这似乎不受支持。