Python - 从 Pandas 数据框中的多级列索引中删除一个级别
要从多级列索引中删除一个级别,请使用. 我们已经使用is used 来按列创建索引。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'])]
# 形成多索引数据帧
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)
示例
以下是代码
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'])]
# 形成多索引数据帧
dataFrame = pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)
# labelling index
dataFrame.index.names = ['level 0', 'level 1']
print"DataFrame...\n",dataFrame
print"\nDropping a 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
level 0 level 1
car valueA 1.691127 0.315145 -0.695925
valueB -2.077182 -2.027643 -0.523965
valueC 1.021402 -0.384421 0.640215
bike valueA -2.271217 0.197185 0.304847
valueB 0.119615 -0.520491 -0.746547
valueC 1.856888 -0.491540 -1.754604
truck valueA 0.829854 -0.204102 -1.130511
valueB 0.310692 0.119087 -0.244919
valueC -0.245934 -2.141639 -1.298278
Dropping a level...
Updated DataFrame..
Col 1 Col 2 Col 3
Col 1 Col 2 Col 3
level 0 level 1
car valueA 1.691127 0.315145 -0.695925
valueB -2.077182 -2.027643 -0.523965
valueC 1.021402 -0.384421 0.640215
bike valueA -2.271217 0.197185 0.304847
valueB 0.119615 -0.520491 -0.746547
valueC 1.856888 -0.491540 -1.754604
truck valueA 0.829854 -0.204102 -1.130511
valueB 0.310692 0.119087 -0.244919
valueC -0.245934 -2.141639 -1.298278
以上是 Python - 从 Pandas 数据框中的多级列索引中删除一个级别 的全部内容, 来源链接: utcz.com/z/351618.html