df = pd.DataFrame(np.arange(4*3).reshape(4,3), index=[['a','a','b','b'],[1,2,1,2]], columns=list('xyz'))
df如下:
现在,我通过以下方式添加新行:
df.loc['new',:]=[0,0,0]
然后df变为:
现在我想做同样的事情,但要使用具有非唯一多重索引的不同df:
df = pd.DataFrame(np.arange(4*3).reshape(4,3), index=[['a','a','b','b'],[1,1,2,2]], columns=list('xyz'))
,它看起来像:
并致电
df.loc['new',:]=[0,0,0]
结果为“异常:无法处理非唯一的多索引!”
我如何实现目标?
答案 0 :(得分:1)
将append
或concat
与助手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