[PYTHON] (Remarque) Importation d'Excel avec le même nom de colonne

Un journal de mots: Dieu Excel augmentera pour toujours.

Préface

Curieusement, il existe encore de nombreux cas dans le monde où Excel comme le tableau est réalisé directement.

Nom Position âge Nom Position âge
souris ou rat Dieu 60 lapin Directeur 24
vache Réalisateur 48 Tatsu 12
tigre 36 Serpent esclave 1
Mogura Employé humble 20
ours 20 Mise à jour: aujourd'hui

Tableau A (〃 représente la combinaison de cellules. Il y a une ligne vide entre le tigre et le mogura) Je n'ai pas besoin d'une date de mise à jour, il serait donc très utile que vous puissiez le faire comme indiqué dans le tableau ci-dessous, mais il existe diverses choses dans le monde telles que la commodité d'impression et le shinto.

Nom Position âge
souris ou rat Dieu 60
vache Réalisateur 48
tigre Réalisateur 36
Mogura Employé humble 20
ours Employé humble 20
lapin Directeur 24
Tatsu Directeur 12
Serpent esclave 1

Tableau B

matière

Envisagez de prendre le tableau A, de le convertir en tableau B, puis de l'utiliser comme données.

Pour le moment, voici ce que j'ai assemblé avec force brute. Très éléphant à mon avis. Paon.

Première étape


dataframe_raw = pd.read_excel("Tableau A.xlsx")

df_A=dataframe_raw.iloc[:,[*range(0,3)]].dropna(how="all").fillna(method='ffill').astype({'âge':int})
 #0 à partir de données brutes dans iloc-Retirez 2 rangées.[*range()]C'est pratique car vous n'avez pas besoin d'écrire 0, 1, 2 ... etc.
 #dropna()Et 0-Lignes supprimées où les trois colonnes sont NaN
 #fillna()Tirera les données directement au-dessus de NaN afin que vous puissiez remplir les espaces créés dans les cellules fusionnées.
 #Utilisez astype pour changer l'âge lu par type float en type int

À ce stade, df_A ressemble au tableau ci-dessous. La ligne vide et "〃" ont disparu, alors Yoshi!

Nom Position âge
souris ou rat Dieu 60
vache Réalisateur 48
tigre Réalisateur 36
Mogura Employé humble 20
ours Employé humble 20

Deuxième étape


df_B=dataframe_raw.iloc[:,[*range(4,7)]].dropna(how="all").fillna(method='ffill')
 #Fondamentalement df_Identique à A. Cependant, normalement pd_Lors de la lecture avec read, "Pour le même nom de colonne.Notez qu'il existe un symbole distinctif tel que 1 "
df_B.drop(df_B.tail(1).index,inplace=True)
 #Puisque les informations de date de mise à jour à la fin sont inutiles, elles sont coupées.
df_B.astype({'âge.1':int})
df_B.columns=("Nom","Position","âge")
 #Comme mentionné ci-dessus, df_Dans la colonne de B.Puisqu'il a un 1, renommez-le

dataframe_comp=pd.concat([df_A,df_B])
 #Puisque les colonnes sont identiques, il est complété par une jonction verticale avec concat.

Le produit fini est le tableau B écrit en introduction.

Tâches futures

Où s'inquiéter


df_B.astype({'âge.1':int})
df_B.columns=("Nom","Position","âge")

Je pense que ce domaine est très gaspilleur. Vous ne pouvez même pas les mettre en ligne ... Il semble y avoir un moyen d'éviter de spécifier le type int au moment de la lecture et du changement de nom des colonnes.

En outre, ** Y a-t-il un moyen de gérer ce travail lui-même en un seul coup? Je soupçonne **. Ce genre d'anxiété a toujours existé depuis que j'ai appris la fonction de fusion dans le passé. Référence: https://qiita.com/wellwell3176/items/5e39fd44590603d13291

Les références

https://www.366service.com/jp/qa/ee53add5af3296037ee057e49442a821

https://www.it-swarm-ja.tech/ja/python/pandas%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%9C%80%E5%BE%8C%E3%81%AE%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/1050572731/

Recommended Posts

(Remarque) Importation d'Excel avec le même nom de colonne
Chargez le module du même nom dans un autre emplacement
Renommez automatiquement le nœud avec le même nom trouvé en travaillant
Mémorandum (Ajouter le nom uniquement aux personnes portant le même nom de famille dans la liste)
[Python] Récupère le nom de la variable avec str
Remarque: préparez l'environnement de CmdStanPy avec docker
[Note] Exportez le html du site avec python.
Lire le nom / la plage de cellules Excel avec Python VBA
Détecter les dossiers avec la même image dans ImageHash
Renommer la balise avec un espace de noms en lxml
Mettre à jour le site Web XSERVER avec Git push (Remarque)
58 Le même château
Excel avec Python
Lorsqu'une variable locale portant le même nom que la variable globale est définie dans la fonction
Identifiez le nom de l'image de la fleur avec des keras (flux tenseur)
Programme Python qui recherche le même nom de fichier