我有一个Pandas数据框,结构如下:
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的列MultiIndex。
我尝试使用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岁,所以这不太实际。
请问有人可以指导我如何从元组中以编程方式设置MultiIndex列吗?