2016-11-30 36 views
-1

好傢伙我一直在試圖砸大熊貓Excel中的數據幀的2列,使用降命令這樣如何降多列大熊貓數據幀

energy = energy.drop(energy.columns[[0 , 1]], axis= 1) 
然而

,我不能使其向避免查看列。最後我覺得我應該刪除的列作爲我機器上的多級索引。最後我試圖從這樣的水平降低其中一個

energy.index = energy.index.droplevel(2) 

但我仍然無法管理我應該如何避免這些列。

我重視我的工作的屏幕拷貝enter image description here

+2

考慮打字了你的代碼,而不是通過圖像鏈接到它。 – Kyrubas

+1

dupe:http://stackoverflow.com/questions/26347412/drop-multiple-columns-pandas?rq=1 – EdChum

回答

1

不是丟棄列,你可以子集的數據幀像這樣:

In [3]: mydf = pd.DataFrame({"A":[1,2,3,4],"B":[4,3,2,1], "C":[3,4,5,3],"D":[6,4,3,2]}) 
In [4]: mydf 
Out[4]: 
    A B C D 
0 1 4 3 6 
1 2 3 4 4 
2 3 2 5 3 
3 4 1 3 2 
In [5]: mydf[mydf.columns[2:]] 
Out[5]: 
    C D 
0 3 6 
1 4 4 
2 5 3 
3 3 2 

這將工作,如果你想刪除例如前2列。它的工作原理是創建一個df.columns的列表,然後將其分組並應用於您的數據框。那麼您可能想要將新的數據框設置爲一個變量。 如果你要刪除的列不相鄰的可以遍歷列的列表下降:

In [7]: mydf1 = mydf.copy() 
In [8]: for col in ["A","D"]: 
    ...:  mydf1 = mydf1.drop(col,axis=1) 

In [9]: mydf1 
Out[9]: 
    B C 
0 4 3 
1 3 4 
2 2 5 
3 1 3 
0

如果你真的要刪除列,您可以使用del

>>> df = pd.DataFrame({'A':range(3),'B':list('abc'), 'C':range(3,6), 'D':list('gde')}) 
>>> for x in ['A', 'B']: 
...  del df[x] 
... 
>>> df 
    C D 
0 3 g 
1 4 d 
2 5 e 
-1

這可能幫助

energy.drop(energy.columns[[0,1]] , axis=1, inplace=True) 
1

嘗試簡單地重新命名列

假設你有

In: df.columns 

Out: MultiIndex(levels=[['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR 
    VEHICLE', 'TMAX', 'TMIN'], ['count', 'mean']], 
    labels=[[0, 1, 2, 3, 4], [0, 0, 0, 1, 1]]) 

然後

In: df.columns = ['Burglary', 'Grand Larceny', 'Grand Larceny on Motor Vehicle', 
    'TMAX', 'TMIN'] 

In: df.columns 

Out: Index(['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR VEHICLE', 
    'TMAX', 
    'TMIN'], 
    dtype='object')