2012-06-14 59 views
14

sıfırlanmadan endekslenecek sütun ekle 'd''u aşağıdaki dizine, önce sıfırlamak zorunda kalmadan nasıl ekleyebilirim?Pandalar 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 

cevap

30

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

HTH Biz set_index bir append seçeneği eklendi. Bunu dene.

komut şöyledir:

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

(biz zaten endeksinde olduğu gibi, [ 'a', 'b'] belirtmek için gerek yoktur ve biz onlara ekliyorsanız)

-1

Kodunuz geçersiz, reset_index panda sürümümde inplace argümanı bulunmuyor (0.8.1). Aşağıdakiler istediğinizi elde eder, ancak muhtemelen daha zarif bir yol vardır, ancak reset_index'den neden kaçtığınız konusunda yeterli bilgi vermediniz.