2012-06-14 60 views
14

如何將'd'添加到下面的索引而不必先重置它?Pandas DataFrame將列添加到索引而不重置

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 

回答

30

我們增加了一個append選項​​。試試看。

的命令是:

df.set_index(['d'], append=True) 

(我們並不需要指定[「一」,「B」],因爲他們已經在索引中,我們要追加他們)

-1

您的代碼是無效的,reset_index在我的版本的熊貓(0.8.1)沒有就地說法。 以下內容可以實現您想要的功能,但可能會有更優雅的方式,但您尚未提供足夠的信息來說明您爲何避免使用reset_index。

df2.index = MultiIndex.from_tuples([(x,y,df2['d'].values[i]) for i,(x,y) in enumerate(df2.index.values)]) 

HTH

相關問題