2012-06-14 20 views
14

रीसेट किए बिना इंडेक्स में कॉलम जोड़ें, मैं इसे पहले रीसेट किए बिना नीचे दिए गए इंडेक्स में '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 

उत्तर

30

हम set_index के लिए एक append विकल्प जोड़ा। उसकी कोशिश करो।

आदेश है:

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

(हम के रूप में वे पहले से ही सूची में नहीं हैं, [ 'एक', 'बी'] निर्दिष्ट करने की आवश्यकता नहीं है और हम उन्हें जोड़ रहे हैं)

-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

संबंधित मुद्दे