#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}