Ich habe zwei Datenrahmen, einer enthält Bildschirmnamen/Anzeigenamen und ein anderer enthält Einzelpersonen, und ich versuche, einen dritten Datenrahmen zu erstellen, der alle Daten von jedem Datenrahmen in einer neuen Zeile für jedes Mal einen Nachnamen auf dem Bildschirm enthält Name/Anzeigename. Funktional wird dies eine Liste möglicher übereinstimmender Namen erstellen. Meine aktuellen Code, die sich perfekt, aber sehr langsam arbeitet, sieht wie folgt aus:Gibt es einen schnelleren Weg durch Listenverständnis, um durch zwei Datenrahmen zu iterieren?
# Original Social Media Screen Names
# cols = 'userid','screen_name','real_name'
usernames = pd.read_csv('social_media_accounts.csv')
# List Of Individuals To Match To Accounts
# cols = 'first_name','last_name'
individuals = pd.read_csv('individuals_list.csv')
userid, screen_name, real_name, last_name, first_name = [],[],[],[],[]
for index1, row1 in individuals.iterrows():
for index2, row2 in usernames.iterrows():
if (row2['Screen_Name'].lower().find(row1['Last_Name'].lower()) != -1) | (row2['Real_Name'].lower().find(row1['Last_Name'].lower()) != -1):
userid.append(row2['UserID'])
screen_name.append(row2['Screen_Name'])
real_name.append(row2['Real_Name'])
last_name.append(row1['Last_Name'])
first_name.append(row1['First_Name'])
cols = ['UserID', 'Screen_Name', 'Real_Name', 'Last_Name', 'First_Name']
index = range(0, len(userid))
match_list = pd.DataFrame(index=index, columns=cols)
match_list = match_list.fillna('')
match_list['UserID'] = userid
match_list['Screen_Name'] = screen_name
match_list['Real_Name'] = real_name
match_list['Last_Name'] = last_name
match_list['First_Name'] = first_name
Weil ich die ganze Zeile aus jeder Spalte müssen, die Liste Verständnis Methoden, die ich versucht habe nicht zu funktionieren scheinen.
Können Sie zeigen die Probe von zwei Datensätzen und die Ausgabe von Ihnen gesuchte? – Abbas
Die Datensätze sind geradlinig: Benutzernamen hat 3 Spalten: Benutzer-ID (int), Screen-Name (Str Kleinbuchstaben keine Leerzeichen oder Sonderzeichen), real_name (str). Individuen haben 2 Spalten: Last_Name (str) und First_Name (str). Das Ziel besteht darin, einen Datenrahmen für alle Instanzen zu haben, in denen ein Bildschirmname oder ein Realname die gleiche Zeichenfolge wie eine Instanz von Nachname hat, und die Benutzer-ID, Bildschirmname, Realname, Nachname und Vorname für jedes dieser Vorkommen zu speichern. – whateveryousayiam