请考虑以下事项:
import itertools
index_levels = [['foo', 'bar'], ['something', 'something_else']]
midx = pd.MultiIndex.from_product(index_levels, names=['one', 'two']
df = pd.DataFrame(columns=midx)
以下作品:
df['foo', 'something']] = pd.Series(np.random.randn(20,))
但是以下没有:
df.loc[:, idx['foo', 'something']] = pd.Series(np.random.randn(20,))
我们收到以下错误:
ValueError: Must have equal len keys and value when setting with an iterable
为什么呢?
请注意,当列深度为1时,这种类型的系列到列分配没有问题:
df = pd.DataFrame(columns=['foo'])
df.loc[:, 'foo'] = pd.Series(np.random.randn(20,))
以下也有效: