Un journal de mots: Ces jours-ci, les jours de lutte contre Dieu Excel continuent.
No. | Nom | âge |
---|---|---|
1 | Taro Tanaka | 33 |
2 | Suzuki Jiro | 22 |
3 | Saburo Tanaka | 11 |
Il n'y a rien de mal à traiter le tableau ci-dessus comme des données, Lors de la sortie, il y a une demande qui "veuillez faire comme indiqué dans le tableau ci-dessous".
No. | Nom | âge |
---|---|---|
1 | Tanaka (épais) | 33 |
2 | Suzuki | 22 |
3 | Tanaka (3) | 11 |
Étonnamment, je n'ai pas trouvé de page qui effectue ce traitement elle-même, alors je publierai le résultat de la mise en œuvre.
PRG
dataframe_raw = pd.read_excel("Liste.xlsx")
df=dataframe_raw["Nom"].str.split(' ',expand=True)
#Dans ce cas, le nom a été divisé par l'espace pleine largeur, donc divisez-le en deux colonnes.
Si vous divisez par fractionnement, dataframe_process sera comme indiqué dans le tableau ci-dessous, alors vérifiez les noms de famille en double à partir d'ici. S'il y a des doublons, un traitement spécial est utilisé, sinon le nom de famille est utilisé tel quel.
0 | 1 |
---|---|
Tanaka | Taro |
Suzuki | Jiro |
Tanaka | Saburo |
python
df["Nom"]=""
#Ajouter la colonne de stockage à la troisième colonne
for i in range(0,len(df)):
#i à 0~Boucle à la longueur de la liste
NAME = df.at[i,0]
check_count=(df[0]==NAME).sum()
#Comptez le nombre de chaînes de caractères stockées dans la 0ème colonne de la i-ème ligne (s'il y en a 2 ou plus, il y a une personne avec le même nom de famille)
if check_count>=2:
df.at[i,"Nom"]=df.at[i,0]+"("+df.at[i,1][0]+")"
#S'il y a des doublons, la chaîne de caractères dans la 0ème colonne +("0ème caractère de la chaîne de caractères de la 1ère colonne")Remplacer
else :
df.at[i,"Nom"]=df.at[i,0]
#S'il n'y a pas de duplication, la chaîne de caractères dans la 0ème colonne de la i-ème ligne +(0ème caractère de la chaîne de caractères dans la 1ère colonne de la ligne i)Remplacer
Avec ce processus, le bloc de données sera comme indiqué dans le tableau ci-dessous, vous pouvez donc l'utiliser en remplaçant ou en combinant les colonnes de nom.
0 | 1 | Nom |
---|---|---|
Tanaka | Taro | Tanaka (épais) |
Suzuki | Jiro | Suzuki |
Tanaka | Saburo | Tanaka (3) |
Je trouve que c'est relativement propre, mais j'ai peur de ce qu'il faut faire si une liste avec le même nom et le même nom apparaît.
Recommended Posts