У меня есть огромные данные карточной карты [200 тыс. Записей] и фактические данные ученика [~ 100 М]. Я пытаюсь использовать функцию карты, чтобы преобразовать дискретное значение в наборе данных в числовой балл.Элегантный способ использования карты для скоринга дискретной переменной
Я конвертирую счет в объект dict, чтобы выполнить это. Есть ли лучший способ сделать то же самое без преобразования счет карты в Словаре или любой другой объект
#Score card Data
import pandas as pd
raw_data = {'math_grade': ['A', 'B','MISS'],
'score': [1, 2, 3]}
df_math_grade = pd.DataFrame(raw_data, columns = ['math_grade', 'score'])
#Convert Score card to dictionary
di = df_math_grade.set_index('math_grade')['score'].to_dict()
#STUDENT MARKS DATA
student_marks = {
'STUDENT_ID': ['S1', 'S2', 'S3','S4','S5'],
'MATH_GRADE': ['A','B','C','X','MISS']}
student_marks = pd.DataFrame(student_marks, columns = ['STUDENT_ID', 'MATH_GRADE'])
student_marks["MATH_GRADE_SCORE"] = student_marks["MATH_GRADE"].map(di)
student_marks
На самом деле, я хочу, чтобы это было несколько столбцов, используя простую функцию, поэтому я избегаю присоединений, и я хочу, чтобы она была минимальной. Мой вопрос: можно ли использовать функцию карты с использованием фрейма данных вместо dict? – pmv
Я думаю, что remap by 'dict' в одном из очень хороших решений, я добавляю карту' Serie', пожалуйста, проверьте мой ответ. – jezrael
Если бы мой ответ был полезным, не забудьте [принять] (http://meta.stackexchange.com/a/5235/295067) Спасибо. – jezrael