Как добавить новую строку в кадр данных Pandas с неуникальным мультииндексом - PullRequest
0 голосов
/ 20 сентября 2018
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 голосов
/ 20 сентября 2018

Используйте 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
...