如何使用非唯一的多索引向熊猫数据框添加新行

时间:2018-09-20 09:16:23

标签: pandas multi-index

df = pd.DataFrame(np.arange(4*3).reshape(4,3), index=[['a','a','b','b'],[1,2,1,2]], columns=list('xyz'))

df如下:

enter image description here

现在,我通过以下方式添加新行:

df.loc['new',:]=[0,0,0]

然后df变为:

enter image description here

现在我想做同样的事情,但要使用具有非唯一多重索引的不同df:

df = pd.DataFrame(np.arange(4*3).reshape(4,3), index=[['a','a','b','b'],[1,1,2,2]], columns=list('xyz'))

,它看起来像:

enter image description here

并致电

df.loc['new',:]=[0,0,0]

结果为“异常:无法处理非唯一的多索引!”

我如何实现目标?

1 个答案:

答案 0 :(得分:1)

appendconcat与助手DataFrame一起使用:

df1 = pd.DataFrame([[0,0,0]], 
                   columns=df.columns, 
                   index=pd.MultiIndex.from_arrays([['new'], ['']]))
df2 = df.append(df1)

df2 = pd.concat([df, df1])
print (df2)
       x   y   z
a   1  0   1   2
    1  3   4   5
b   2  6   7   8
    2  9  10  11
new    0   0   0