2017-01-03 2 views
1

Ich habe versucht, einen Pandas Dataframe in Python 3 zu verwenden, um eine spezifische ID zu finden, die mit einem Namen aus einer CSV-Datei übereinstimmt. Die API, die ich lese, gibt mir den Namen António, zusammen mit anderen Namen, so wie ich es brauche mit dem Akzent in einer Spalte namens "first". Ich habe eine Reihe von Namen, die nicht unbedingt alle Akzente haben müssen, die ich erfüllen muss. Dieses Programm scheint für jeden Namen zu funktionieren, den ich versuche, außer für die, die unterschiedliche Werte für akzentuierte Zeichen haben.Wie kann ich einen Pandas Dataframe mit ungültigen Zeichen (Akzenten) an ein Array anpassen?

import pandas as pd 

nameArray=[Antonio,Matt,Mark,Raul] 
playersUrl = 'https://www.FakeSite.com/players' 
playerData = pd.read_csv(playersUrl, names=["PLAYERID", "FIRSTNAME"] 

for first, playerid in zip(playerData["FIRSTNAME"],playerData["PLAYERID"]): 
    for i in len(nameArray): 
     testName = nameArray[i]  
     if first == testName: 
      return playerid 
+1

Ihre Einrückung hat einige Herausforderungen. –

+1

Wollen Sie sagen, dass Sie Namen mit oder ohne Akzente suchen möchten? –

+0

Der playerData-Datenrahmen aus der CSV-Datei hat Wörter mit Akzenten. Das Array ist mit unbetonten Wörtern gefüllt, und ich brauche sie passend. – Dan

Antwort

1

Wenn Sie ohne diakritische Zeichen ein Vergleich tun wollen, siehe vorherige here SO schreiben:

Unidecode hierfür ist die richtige Antwort. Es transkribiert jede Unicode-Zeichenfolge in die nächstmögliche Darstellung in Ascii-Text.

Verwandte Themen