Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向单级数据帧添加多级列_Python_Pandas_Dataframe_Multiple Columns_Multi Index - Fatal编程技术网

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”),因此会有点混乱。因此,如果有一种简单的方法可以将多级列添加到单级数据帧中,我想这会使我的工作更轻松。