【发布时间】:2016-12-27 00:32:23
【问题描述】:
我有一个具有多个级别的数据框,例如:
idx = pd.MultiIndex.from_product((['foo', 'bar'], ['one', 'five', 'three' 'four']),
names=['first', 'second'])
df = pd.DataFrame({'A': [np.nan, 12, np.nan, 11, 16, 12, 11, np.nan]}, index=idx).dropna().astype(int)
A
first second
foo five 12
four 11
bar one 16
five 12
three 11
我想使用标题为second 的索引级别创建一个新列,以便得到
A B
first second
foo five 12 five
four 11 four
bar one 16 one
five 12 five
three 11 three
我可以通过重置索引、复制列、然后重新应用来做到这一点,但这似乎更加迂回。
我尝试了df.index.levels[1],但这会创建一个排序列表,它不会保留顺序。
如果它是单个索引,我会使用df.index,但在创建一列元组的多索引中。
如果这在其他地方得到解决,请分享,因为我没有任何运气搜索 stackoverflow 档案。
【问题讨论】:
标签: python pandas multi-index