我有一个熊猫数据框,其结构如下:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(32).reshape((4,8)),
index = pd.date_range('2016-01-01', periods=4),
columns=['male ; 0', 'male ; 1','male ; 2','male ; 4','female ; 0','female ; 1','female ; 2','female ; 3',])
列名混乱,标题名中有两个变量,以及原始电子表格中的剩余标点符号。
我要做的是在我的数据帧中设置一个名为sex和age的列多索引。
我试着像这样使用pd.MultiIndex.from_tuples
:
columns = [('Male', 0),('Male', 1),('Male', 2),('Male', 3),('Female', 0),('Female', 1),('Female', 2),('Female', 3)]
df.columns = pd.MultiIndex.from_tuples(columns)
然后命名列索引:
df.columns.names = ['Sex', 'Age']
这是我想要的结果。但是,我的数据帧的年龄已经超过了每种性别100岁,所以这不是很实用。
有人能告诉我怎样用程序的方法从元组中设置多索引列吗。
Jaco的答案很好,但您甚至可以使用
.from_product()
直接从产品中创建MultiIndex
:您可以使用
itertools
模块生成您的columns
变量,方法是使用数据中性别和年龄范围的笛卡尔连接,例如:相关问题 更多 >
编程相关推荐