Как сделать ключ словаря индексом данных в фрейме слияния? - PullRequest
1 голос
/ 30 сентября 2019

У меня есть dict с именем percent_dict, в котором 17 dfs.

Образец dfs:

Hffpw

          key                percentage
0   step19_without_lof  14.534883720930232

Hflpw

           key                percentage
0   step19_without_lof  14.970930232558139

Bgf

             key             percentage
0   step1_without_lof   1.5988372093023255
1   step2_without_lof   30.377906976744185
2   step5_without_lof   3.197674418604651
3   step7_without_lof   9.738372093023257
4   step12_without_lof  5.377906976744186
5   step15_without_lof  4.215116279069767
6   step16_without_lof  6.8313953488372094
7   step19_without_lof  13.80813953488372
8   step24_without_lof  9.883720930232558
9   step25_without_lof  11.337209302325581
10  step26_without_lof  9.738372093023257
11  step27_without_lof  9.738372093023257

и т. Д.

Я повернул их следующим образом:

def pivoting(df):
    d = pd.pivot_table(df, values = 'percentage', columns = ['key'])
    return d

pivoting('Hffpw')
pivoting('Hflpw')
pivoting('Bgf')

Значение dfs после поворота выглядит следующим образом:

enter image description here

Я пытаюсь объединить все эти кадры данных (значения в percent_dict)и ключи должны быть индексом результирующих кадров данных.

Я сделал следующее:

a = pd.concat(percent_dict.values())

, и это дает мне:

enter image description here

На рисунке видно, что percentage является индексом. Но я хотел бы знать, как назначить Keys из percent_dict в качестве индекса кадра данных.

1 Ответ

1 голос
/ 30 сентября 2019

Одна идея - сначала concat, затем преобразовать MultiIndex в столбцы и последнее использование pivot_table:

df = (pd.concat(percent_dict)
        .reset_index()
        .pivot_table(index='level_0', values = 'percentage', columns = 'key'))

print (df)
key      step12_without_lof  step15_without_lof  step16_without_lof  \
level_0                                                               
Bgf                5.377907            4.215116            6.831395   
Hffpw                   NaN                 NaN                 NaN   
Hflpw                   NaN                 NaN                 NaN   

key      step19_without_lof  step1_without_lof  step24_without_lof  \
level_0                                                              
Bgf               13.808140           1.598837            9.883721   
Hffpw             14.534884                NaN                 NaN   
Hflpw             14.970930                NaN                 NaN   

key      step25_without_lof  step26_without_lof  step27_without_lof  \
level_0                                                               
Bgf               11.337209            9.738372            9.738372   
Hffpw                   NaN                 NaN                 NaN   
Hflpw                   NaN                 NaN                 NaN   

key      step2_without_lof  step5_without_lof  step7_without_lof  
level_0                                                           
Bgf              30.377907           3.197674           9.738372  
Hffpw                  NaN                NaN                NaN  
Hflpw                  NaN                NaN                NaN  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...