将系列分配给多索引列

时间:2015-02-11 19:31:29

标签: python python-3.x pandas

请考虑以下事项:

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,))

以下也有效:

0 个答案:

没有答案