Joindre les données avec la clé principale (obligatoire) et la sous-clé (facultative) dans les pandas Python

Joindre les données avec la clé principale (obligatoire) et la sous-clé (facultative) dans les pandas Python

Aperçu

Avant Rejoignez csv normalisé par les pandas Python et traitez-le pour une confirmation facile

J'ai présenté l'article. En cas d'utilisation pratique

J'étais assez accro aux données suivantes Je vais le poster.

Je suis sûr qu'il existe un moyen plus intelligent, Une fois le but atteint.

Supposons que vous ayez les deux données suivantes. chaque Clé principale (obligatoire) Sous-clé (facultatif) Il y a.

Les données de transaction sont au format Excel et l'abréviation de la sous-clé est "" Il y a un certain espace. Les données de base sont au format CSV et les omissions de sous-clés sont stockées sans espaces "".

Si vous le stockez en tant que SGBDR et que vous vous joignez à Trim, ce sera un coup. Réalisation avec Python seul

Environnement d'utilisation

Python 3.8.2 Visual Studio Code 1.45.0

Code source

Comme indiqué ci-dessous, il rejoint et génère enfin Excel pour confirmation

subkey_join.py



#Joignez la clé principale (obligatoire) et la sous-clé (facultative).

import pandas as pd
import re

def main():
    #Traitement du corps
    #Lire les données
    new_acc_master = pd.read_csv(".\\subkey_join\\Maître.csv",encoding="cp932", dtype=str)
    value_trn = pd.read_excel(".\\subkey_join\\transaction.xlsx", dtype=str)
        
    #Supprimer sans sous-valeur
    value_trn['Sous-code'] = value_trn['Sous-code'].str.strip()
    new_acc_master['Sous-code'] = new_acc_master['Sous-code'].str.strip()

    #Remplacement de la valeur non sous-complète de Tran par aucune valeur. Les données avec une source vide étaient correctes.
    value_trn.Sous-code[value_trn.Sous-code == ""] = "Aucune valeur"
    print(type(value_trn))
    print(value_trn.dtypes)

    
    #☆☆ NG J'ai essayé de faire la même chose du côté maître, mais cela n'est pas changé par la logique suivante
    #new_acc_masternew_acc_master.sous[new_acc_master.sous == ""] = "Aucune valeur"
    
    #Sous-code maître sans sous-valeurs
    #new_acc_master = new_acc_master.replace('^$',{'Sous-code':'Aucune valeur'},regex=True)
    print(new_acc_master['Sous-code'].dtype)
    
    #Spécifiez le type de caractère Python, astype
    #Le type sur les pandas ne change pas avec l'objet, mais là où il n'y a pas de valeur,"nan"Pour changer en
    new_acc_master['Sous-code'] = new_acc_master['Sous-code'].astype(str)
    print(new_acc_master['Sous-code'].dtype)

    ##☆☆ C'est OK, je pense qu'il existe un moyen plus intelligent. ..
    new_acc_master.Sous-code[new_acc_master.Sous-code == "nan"] = "Aucune valeur"
    
    print(type(new_acc_master))
    print(new_acc_master.dtypes)
    
    #Joindre gauche avec la clé principale et la sous-clé.
    jpin_pd = pd.merge(value_trn, new_acc_master, how="left", left_on=['Code principal','Sous-code'], right_on=['Code principal','Sous-code'],suffixes=('_trn','_new'))
    

    #Sortie Excel
    jpin_pd.to_excel(".\\subkey_join\\view_data.xlsx")
    

if __name__ == '__main__': main()


Recommended Posts

Joindre les données avec la clé principale (obligatoire) et la sous-clé (facultative) dans les pandas Python
[Python] Joindre deux tables avec des pandas
[Python3] Enregistrez la matrice de moyenne et de covariance dans json avec les pandas
Obtenez des données supplémentaires vers LDAP avec python
Construction de pipeline de données avec Python et Luigi
Essayez de travailler avec des données binaires en Python
Gérer les "années et mois" en Python
Représentez facilement des données graphiques dans le shell et Python
Gérez les structures de données 3D avec les pandas
Variables Python et types de données appris avec la chimio-automatique
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
Recevoir et afficher les données de formulaire HTML en Python
[Python] Permutation des lignes et des colonnes de données Numpy
Lire les données de la table dans un fichier PDF avec Python
Visualisez de manière interactive les données avec Treasure Data, Pandas et Jupyter.
[Python] Lire le csv japonais avec des pandas sans caractères déformés (extraire davantage les colonnes écrites en japonais)
Traitement pleine largeur et demi-largeur des données CSV en Python
Construction d'un environnement d'analyse de données avec Python (notebook IPython + Pandas)
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Démarrer le calcul numérique avec Python (avec Homebrew et pip)
Étudiez l'échange de données Java et Python avec Apache Arrow
Analyse de données avec python 2
Séquence de touches en Python
Visualisation des données avec les pandas
Manipulation des données avec les Pandas!
Séquence de touches en Python
Analyse de données avec Python
Créez un arbre de décision à partir de zéro avec Python et comprenez-le (3. Bibliothèque d'analyse de données édition Pandas)
Essayez de gratter les données COVID-19 Tokyo avec Python
Veriloggen et cocotb sont utilisés pour concevoir et tester Verilog en Python uniquement.
Remarques sur la gestion de grandes quantités de données avec python + pandas
Ingéniosité pour gérer les données avec Pandas de manière à économiser la mémoire
Débarrassez-vous des données sales avec Python et les expressions régulières
[Python] Dessinez des dataframes Pandas dans Plotly avec des boutons de manchette
Résolvez le livre en spirale (algorithme et structure de données) avec python!
[Python] Forces et faiblesses de DataFrame en termes de temps requis
Comparaison de la gestion des trames de données en Python (pandas), R, Pig
Jouez avec les archives de Mastodon dans les réponses et les favoris de Python 2 Count
[Python] Extraction / combinaison de données aléatoires à partir de DataFrame en utilisant random et pandas
Comment créer une trame de données et jouer avec des éléments avec des pandas
Compagnon de science des données en python, comment spécifier des éléments dans les pandas
Installez CaboCha dans l'environnement Ubuntu et appelez-le avec Python.
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Comment se connecter à AtCoder avec Python et soumettre automatiquement
"Introduction à l'analyse de données par modélisation statistique bayésienne à partir de R et Stan" implémenté en Python
Exemple de données créées avec python
Programmation avec Python et Tkinter
Gérer les données ambiantes en Python
Lire csv avec des pandas python
Python et matériel - Utilisation de RS232C avec Python -
Exploitez LibreOffice avec Python
Grattage avec chromedriver en python
Afficher les données UTM-30LX en Python
Obtenez des données Youtube avec python
Gérer les sons en Python
Grattage avec du sélénium en Python
Ajouts clés aux pandas 1.1.0 et 1.0.0
[Python] Changer de type avec les pandas
Grattage avec Tor en Python
Combiné avec ordinal en Python
python avec pyenv et venv