Ich habe eine sehr große Kerbkartendaten [200k Aufzeichnungen] und tatsächliche Studentendaten [~ 100M]. Ich versuche, Kartenfunktion zu verwenden, um einen diskreten Wert in dem Dataset in einem numerischen Wert zu konvertieren.Elegante Weise, Karte für eine wertende diskrete Variable zu verwenden
Ich konvertiere das Ergebnis in dict-Objekt, um dies zu erreichen. Gibt es einen besseren Weg, um die gleiche ohne Umwandlung der Score-Karte dict oder irgendein anderes Objekt
#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
Eigentlich möchte ich dies über mehrere Spalten mit einer einfachen Funktion, so dass ich vermeiden verbinde und ich möchte es minimal sein. Meine Frage ist -kann ich Kartenfunktion mit Datenrahmen anstelle von dict verwenden? – pmv
Ich denke, durch 'dict' in einer der sehr schönen Lösungen neu zuordnen, ich füge Karte von 'Serie' hinzu, überprüfen Sie bitte meine Antwort. – jezrael
Wenn meine Antwort hilfreich war, nicht vergessen [akzeptieren] (http://meta.stackexchange.com/a/5235/295067) Danke. – jezrael