如何将'd'
添加到下面的索引而不必先重置它?
from pandas import DataFrame
df = DataFrame( {'a': range(6), 'b': range(6), 'c': range(6)} )
df.set_index(['a','b'], inplace=True)
df['d'] = range(6)
# how do I set index to 'a b d' without having to reset it first?
df.reset_index(['a','b','d'], inplace=True)
df.set_index(['a','b','d'], inplace=True)
df
答案 0 :(得分:53)
我们向append
添加了set_index
选项。试试吧。
命令是:
df.set_index(['d'], append=True)
(我们不需要指定['a','b'],因为它们已经在索引中,我们将附加到它们中)
答案 1 :(得分:-1)
您的代码无效,reset_index在我的pandas版本(0.8.1)中没有inplace参数。 以下内容可以达到您想要的效果,但可能会有更优雅的方式,但是您没有提供足够的信息来说明为什么要避免使用reset_index。
df2.index = MultiIndex.from_tuples([(x,y,df2['d'].values[i]) for i,(x,y) in enumerate(df2.index.values)])
HTH