Python 向单级数据帧添加多级列
我有一个单级数据帧:Python 向单级数据帧添加多级列,python,pandas,dataframe,multiple-columns,multi-index,Python,Pandas,Dataframe,Multiple Columns,Multi Index,我有一个单级数据帧: df = pd.DataFrame({"x":[0,0,0],"y":[0,0,0]}) 看起来是这样的: x y 0 0 0 1 0 0 2 0 0 x y z z1 z2 0 0 0 1 2 1 0 0 1 2 2 0 0 1 2 现在,我想在这个数据帧中添加一个多级列“z”(有两个子列“z1”和“z
df = pd.DataFrame({"x":[0,0,0],"y":[0,0,0]})
看起来是这样的:
x y
0 0 0
1 0 0
2 0 0
x y z
z1 z2
0 0 0 1 2
1 0 0 1 2
2 0 0 1 2
现在,我想在这个数据帧中添加一个多级列“z”(有两个子列“z1”和“z2”),它看起来如下所示:
x y
0 0 0
1 0 0
2 0 0
x y z
z1 z2
0 0 0 1 2
1 0 0 1 2
2 0 0 1 2
首先,我们将现有列设置为多索引:
df.columns = pd.MultiIndex.from_arrays([df.columns,['']*len(df.columns)])
然后添加新的元组索引
df[('z','z1')] = [1,1,1]
df[('z','z2')] = [2,2,2]
df
得到
x y z
z1 z2
0 0 0 1 2
1 0 0 1 2
2 0 0 1 2
如果只添加列
df[“z1”]=1;df[“z2”],您的生活可能会更轻松=2
@anon01实际上,我需要在我的数据帧中有多个多级列,每个列都有多个子列,并且我经常需要操作给定父列的所有子列。如果我不使用多级列,那么每次我都需要进行列表理解,以选择以给定字符串开头的所有列(例如,所有以“z”开头的列,即“z1”和“z2”),因此会有点混乱。因此,如果有一种简单的方法可以将多级列添加到单级数据帧中,我想这会使我的工作更轻松。