Python – 從 Pandas 資料框中刪除多層級列索引中的多層級
若要從多層級列索引中刪除多層級,可重複使用 columns.droplevel()。我們已使用 Multiindex.from_tuples() 根據列建立索引。
首先,根據列建立索引 −
items = pd.MultiIndex.from_tuples([("Col 1", "Col 1", "Col 1"),("Col 2", "Col 2", "Col 2"),("Col 3", "Col 3", "Col 3")])接下來,建立一個多重索引陣列並形成一個多重索引資料框 −
arr = [np.array(['car', 'car', 'car','bike','bike', 'bike', 'truck', 'truck', 'truck']), np.array(['valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC'])] # forming multiindex dataframe dataFrame = pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)
給索引貼上標籤 −
dataFrame.index.names = ['level 0', 'level 1']
在索引 0 處刪除一個層級 −
dataFrame.columns = dataFrame.columns.droplevel(0)
我們在 0 索引處刪除了一個層級。刪除後,層級 1 現在變為層級 0。要刪除另一個層級,只需再次使用上述方法,即。
dataFrame.columns = dataFrame.columns.droplevel(0)
以下是程式碼
示例
import numpy as np
import pandas as pd
items = pd.MultiIndex.from_tuples([("Col 1", "Col 1", "Col 1"),("Col 2", "Col 2", "Col 2"),("Col 3", "Col 3", "Col 3")])
# multiindex array
arr = [np.array(['car', 'car', 'car','bike','bike', 'bike', 'truck', 'truck', 'truck']),
np.array(['valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC'])]
# forming multiindex dataframe
dataFrame = pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)
# labelling index
dataFrame.index.names = ['one', 'two']
print"DataFrame...\n",dataFrame
print"\nDropping a level...\n";
dataFrame.columns = dataFrame.columns.droplevel(0)
print"Updated DataFrame..\n",dataFrame
print"\nDropping another level...\n";
dataFrame.columns = dataFrame.columns.droplevel(0)
print"Updated DataFrame..\n",dataFrame輸出
將生成以下輸出 −
DataFrame...
Col 1 Col 2 Col 3
Col 1 Col 2 Col 3
Col 1 Col 2 Col 3
one two
car valueA 0.425077 0.020606 1.148156
valueB -1.720355 0.502863 1.184753
valueC 0.373106 1.300935 -0.128404
bike valueA -0.648708 0.944725 0.593327
valueB -0.613921 -0.238730 -0.218448
valueC 0.313042 -0.628065 0.910935
truck valueA 0.286377 0.478067 -1.000645
valueB 1.151793 -0.171433 -0.612346
valueC -1.358061 0.735075 0.092700
Dropping a level...
Updated DataFrame..
Col 1 Col 2 Col 3
Col 1 Col 2 Col 3
one two
car valueA 0.425077 0.020606 1.148156
valueB -1.720355 0.502863 1.184753
valueC 0.373106 1.300935 -0.128404
bike valueA -0.648708 0.944725 0.593327
valueB -0.613921 -0.238730 -0.218448
valueC 0.313042 -0.628065 0.910935
truck valueA 0.286377 0.478067 -1.000645
valueB 1.151793 -0.171433 -0.612346
valueC -1.358061 0.735075 0.092700
Dropping another level...
Updated DataFrame..
Col 1 Col 2 Col 3
one two
car valueA 0.425077 0.020606 1.148156
valueB -1.720355 0.502863 1.184753
valueC 0.373106 1.300935 -0.128404
bike valueA -0.648708 0.944725 0.593327
valueB -0.613921 -0.238730 -0.218448
valueC 0.313042 -0.628065 0.910935
truck valueA 0.286377 0.478067 -1.000645
valueB 1.151793 -0.171433 -0.612346
valueC -1.358061 0.735075 0.092700
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP