Ein Worttagebuch: In diesen Tagen gehen die Tage des Kampfes gegen Gott Excel weiter.
No. | Name | Alter |
---|---|---|
1 | Taro Tanaka | 33 |
2 | Suzuki Jiro | 22 |
3 | Saburo Tanaka | 11 |
Es ist nichts Falsches daran, die obige Tabelle als Daten zu behandeln. Bei der Ausgabe wird die Anforderung "Bitte tun Sie, wie in der folgenden Tabelle gezeigt" angezeigt.
No. | Name | Alter |
---|---|---|
1 | Tanaka (dick) | 33 |
2 | Suzuki | 22 |
3 | Tanaka (3) | 11 |
Überraschenderweise konnte ich keine Seite finden, die diese Verarbeitung selbst ausführt, daher werde ich das Implementierungsergebnis veröffentlichen.
PRG
dataframe_raw = pd.read_excel("Dienstplan.xlsx")
df=dataframe_raw["Name"].str.split(' ',expand=True)
#In diesem Fall wurde der Name durch den Raum voller Breite geteilt, also teilen Sie ihn in zwei Spalten.
Wenn Sie durch Teilen teilen, wird dataframe_process wie in der folgenden Tabelle gezeigt angezeigt. Suchen Sie daher von hier aus nach doppelten Nachnamen. Wenn Duplikate vorhanden sind, wird eine spezielle Verarbeitung verwendet. Wenn nicht, wird der Nachname unverändert verwendet.
0 | 1 |
---|---|
Tanaka | Taro |
Suzuki | Jiro |
Tanaka | Saburo |
python
df["Name"]=""
#Fügen Sie die Speicherspalte zur dritten Spalte hinzu
for i in range(0,len(df)):
#i bis 0~Schleife auf die Länge des Dienstplans
NAME = df.at[i,0]
check_count=(df[0]==NAME).sum()
#Zählen Sie, wie viele Zeichenfolgen in der 0. Spalte der i-ten Zeile gespeichert sind (wenn es 2 oder mehr sind, gibt es eine Person mit demselben Nachnamen).
if check_count>=2:
df.at[i,"Name"]=df.at[i,0]+"("+df.at[i,1][0]+")"
#Wenn es Duplikate gibt, die Zeichenfolge in der 0. Spalte +("0. Zeichen der Zeichenfolge der 1. Spalte")Ersatz
else :
df.at[i,"Name"]=df.at[i,0]
#Wenn keine Duplizierung vorliegt, wird die Zeichenfolge in der 0. Spalte der i-ten Zeile + angezeigt(0. Zeichen der Zeichenfolge in der 1. Spalte der i-Zeile)Ersatz
Bei diesem Vorgang sieht der Datenrahmen wie in der folgenden Tabelle gezeigt aus, sodass Sie ihn verwenden können, indem Sie die Namensspalten ersetzen oder kombinieren.
0 | 1 | Name |
---|---|---|
Tanaka | Taro | Tanaka (dick) |
Suzuki | Jiro | Suzuki |
Tanaka | Saburo | Tanaka (3) |
Ich finde es relativ sauber, aber ich habe Angst, was zu tun ist, wenn eine Liste mit demselben Nachnamen und demselben Namen angezeigt wird.