Как добавить в столбец dataframe dict?

#python #python-3.x #pandas #dataframe #dictionary

#python #python-3.x #панды #dataframe #словарь

Вопрос:

Входной фрейм данных:

           Id               Score            Score1
0        19138359    0.5347029367015973   0.832428474443
1        12134001    0.9347094453553113   0.632535428479
  

Следующий фрейм данных требуется в качестве вывода:

           Id                             Scores
0        19138359  {'Score': 0.5347029367015973, 'Score1': 0.832428474443}
1        12134001  {'Score': 0.9347094453553113, 'Score1': 0.632535428479}
  
  Scores = ['Score', 'Score1']      
 d, l = {}, []
 for i, row in publish.iterrows():
     d['Id'] = row['Id']
     d['Scores'] = row[Scores].to_dict()
     l.append(d)
  

Он выдает неверный вывод!

Ответ №1:

Используйте orient="records" аргумент в to_dict :

 # Get score columns
score_columns = df.filter(like='Score').columns

# Create dict of scores column
df['Scores'] = df[score_columns].to_dict(orient='records')

# Drop original score columns
df.drop(columns=score_columns, inplace=True)
  

[выход]

          Id                                                       Scores
0  19138359  {'Score': 0.5347029367015973, 'Score1': 0.8324284744429999}
1  12134001      {'Score': 0.9347094453553112, 'Score1': 0.632535428479}