2013-05-27 62 views
2

我有以下數據框:熊貓:Set_index功能不會刪除列

df = pd.DataFrame({ 
'Trader': 'Carl Mark Carl Joe Joe Carl Joe Carl'.split(), 
'Product': list('AAAABBAA'), 
'Quantity': [5,2,5,10,1,5,2,3], 
'Start' : [ 
    DT.datetime(2013,1,1,9,0), 
    DT.datetime(2013,1,1,8,5), 
    DT.datetime(2013,2,5,14,0), 
    DT.datetime(2013,2,5,16,0), 
    DT.datetime(2013,2,8,20,0),          
    DT.datetime(2013,2,8,16,50), 
    DT.datetime(2013,2,8,7,0), 
    DT.datetime(2013,7,4,8,0)]}) 

當我試着通過把指數:

df = df.set_index([df.Start, df.Trader, df.Product]) 

它不會刪除其用於列該指數。即使我明確指定使用:

df = df.set_index([df.Start, df.Trader, df.Product], drop=True) 

這是一個錯誤還是在我的代碼中有錯誤?

由於

安迪

回答

7

的參數是列名的陣列而不是那些系列:

In [9]: df.set_index(['Start', 'Trader', 'Product']) 
Out[9]: 
            Quantity 
Start    Trader Product   
2013-01-01 09:00:00 Carl A    5 
2013-01-01 08:05:00 Mark A    2 
2013-02-05 14:00:00 Carl A    5 
2013-02-05 16:00:00 Joe A    10 
2013-02-08 20:00:00 Joe B    1 
2013-02-08 16:50:00 Carl B    5 
2013-02-08 07:00:00 Joe A    2 
2013-07-04 08:00:00 Carl A    3 
+0

感謝您的澄清。我是熊貓的初學者,我不清楚兩者之間的差異。 – Andy