Я думаю, вам нужно присвоить df_offset
те же имена столбцов, что и df_epocs_idx
. Таким образом, создайте два столбца в df_offset
, повторяя значения, которые у вас есть сейчас в одном столбце, изменив имена столбцов на «начало» и «смещение».
Я составил этот пример, чтобы воспроизвести вашу ситуацию, и он может вам помочь.
Новый манекен df_epocs_idx
:
df_epocs_idx = pd.DataFrame({'1': [0, 0, 0, 1, 1,1,2,2,2],'2': [0, 1, 2, 0, 1,2,0,1,2],
'onset': np.random.rand(9),"offset": np.random.rand(9)})
df_epocs_idx= df_epocs_idx.set_index(["1","2"])
df_epocs_idx
onset offset
1 2
0 0 0.100127 0.231690
1 0.582593 0.209367
2 0.598472 0.863339
1 0 0.079973 0.459830
1 0.245197 0.874727
2 0.717778 0.041785
2 0 0.750384 0.123909
1 0.862120 0.169458
2 0.056572 0.744763
Новый манекен df_offset
:
df_offset = pd.DataFrame({"onset": [3,10,100],"offset":[3,10,100]})
df_offset
onset offset
0 3 3
1 10 10
2 100 100
Суммируйте два фрейма данных на основе уровня 0:
df_epocs_idx.add(df_offset, level=0)
Дает:
onset offset
1 2
0 0 3.100127 3.231690
1 3.582593 3.209367
2 3.598472 3.863339
1 0 10.079973 10.459830
1 10.245197 10.874727
2 10.717778 10.041785
2 0 100.750384 100.123909
1 100.862120 100.169458
2 100.056572 100.744763