使用MultiIndex列创建DataFrame时,似乎无法返回带有MultiIndex的单个列。而是返回具有索引的对象:
import pandas as pd
import numpy as np
dates = np.asarray(pd.date_range('1/1/2000', periods=8))
_metaInfo = pd.MultiIndex.from_tuples([('AA', '[m]'), ('BB', '[m]'), ('CC', '[s]'), ('DD', '[s]')], names=['parameter','unit'])
df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=_metaInfo)
print df.get('AA').columns
# Index([[m]], dtype=object)
缺少'参数'信息。 这是一个错误,是否有解决方法?
答案 0 :(得分:1)
我也在努力解决这个问题。相反,为单个添加一个额外的级别(因此它匹配MultiIndex),也让我忙碌。
我有时会使用它来保持索引的完整性:
print df.T[[('AA', '[m]') == col for col in df.columns]].T
parameter AA
unit [m]
2000-01-01 0.972434
2000-01-02 -0.581852
2000-01-03 -0.784172
2000-01-04 -0.843441
2000-01-05 -1.030200
2000-01-06 -0.864225
2000-01-07 -0.530056
2000-01-08 -0.651367
但是,当您的索引更复杂时,这不是最灵活的解决方案。在这个例子中它可以工作。