Рассмотрим следующий фрейм данных
my_df = pd.DataFrame()
my_df.at[0,'tunnel1']=3
my_df.at[1,'tunnel1']=3
my_df.at[1,'tunnel2']=2
my_df.at[2,'tunnel1']=3
my_df.at[2,'tunnel2']=2
my_df.at[3,'tunnel1']=4
my_df.at[3,'tunnel2']=1
my_df.at[3,'tunnel3']=4
my_df.at[4,'tunnel1']=1
my_df.at[4,'tunnel2']=5
my_df.at[4,'tunnel3']=1
my_df.at[5,'tunnel1']=1
my_df.at[5,'tunnel2']=5
my_df.at[5,'tunnel3']=1
my_df.at[5,'tunnel4']=3
my_df.at[6,'tunnel1']=6
my_df.at[6,'tunnel2']=5
my_df.at[6,'tunnel3']=5
my_df.at[6,'tunnel4']=2
my_df['data1']='ham'
my_df['data2']='eggs'
my_df['data3']='coffee'
df выглядит как
tunnel1 tunnel2 tunnel3 tunnel4 data1 data2 data3
0 3.0 NaN NaN NaN ham eggs coffee
1 3.0 2.0 NaN NaN ham eggs coffee
2 3.0 2.0 NaN NaN ham eggs coffee
3 4.0 1.0 4.0 NaN ham eggs coffee
4 1.0 5.0 1.0 NaN ham eggs coffee
5 1.0 5.0 1.0 3.0 ham eggs coffee
6 6.0 5.0 5.0 2.0 ham eggs coffee
Затем установите мультииндекс
my_df = my_df.set_index(['tunnel1', 'tunnel2', 'tunnel3', 'tunnel4'])
Похоже
data1 data2 data3
tunnel1 tunnel2 tunnel3 tunnel4
3.0 NaN NaN NaN ham eggs coffee
2.0 NaN NaN ham eggs coffee
NaN ham eggs coffee
4.0 1.0 4.0 NaN ham eggs coffee
1.0 5.0 1.0 NaN ham eggs coffee
3.0 ham eggs coffee
6.0 5.0 5.0 2.0 ham eggs coffee
Теперь я хочу нарезать его так, чтобы получить строки для каждой уникальной записи мультииндекса
for configuration in my_df.index.unique():
mini_df=my_df.loc[configuration]
pandas.core.indexing.IndexingError: Слишком много индексаторов
Первый индексный слайдер -
configuration
(3.0, nan, nan, nan)
И это, я считаю, вызывает ошибку.
То, что я хочу из моего цикла, это
mini_df
tunnel1 tunnel2 tunnel3 tunnel4 data1 data2 data3
0 3.0 NaN NaN NaN ham eggs coffee
mini_df '
tunnel1 tunnel2 tunnel3 tunnel4 data1 data2 data3
1 3.0 2.0 NaN NaN ham eggs coffee
2 3.0 2.0 NaN NaN ham eggs coffee
mini_df' '
tunnel1 tunnel2 tunnel3 tunnel4 data1 data2 data3
3 4.0 1.0 4.0 NaN ham eggs coffee
mini_df' ''
tunnel1 tunnel2 tunnel3 tunnel4 data1 data2 data3
4 1.0 5.0 1.0 NaN ham eggs coffee
Любые предложения о том, что попробовать здесь, пожалуйста? Заранее спасибо за помощь.