2017-09-28 14 views
0

les gars.Essayer de joindre un fichier .dat avec un fichier .asc en utilisant Python ou Excel

J'ai un problème unique en essayant de fusionner deux gros fichiers de données ensemble. Les deux fichiers ont une colonne des mêmes données (numéro de brevet) avec toutes les autres colonnes différentes.

L'idée est de les joindre de telle sorte que ces colonnes de numéros de brevets s'alignent afin que les autres données soient lisibles et connectées.

seulement les premières lignes du fichier .dat ressemble:

IL  1 Chicago 10030271 0 3930271 
PA  1 Bedford 10156902 0 3930272 
MO  1 St. Louis 10112031 0 3930273 
IL  1 Chicago 10030276 0 3930276 

Et le .asc:

02 US corporation No change 11151713 TRANSCO PROD INC 58419 
02 US corporation No change 11151720 SECURE TELECOM INC 502530 
02 US corporation No change 11151725 SOA SYSTEMS INC 520365 
02 US corporation No change 11151738 REVTEK INC 473150 

Le fichier .dat est trop grand pour ouvrir complètement dans Excel donc je ne pense pas que la réorganisation il y a une option (plutôt je ne sais pas si c'est par le biais des macros que j'ai trouvé en ligne).

Tout à fait une question de débutant Je sens mais sait-on comment je pourrais relier ces ensembles de données ensemble (de préférence en utilisant Python) avec cet identifiant unique de numéro de brevet?

Répondre

2

Vous voudrez écrire un programme qui lit les données des deux fichiers que vous souhaitez fusionner. Vous allez ouvrir le fichier et analyser les données pour chaque ligne. De là, vous êtes en mesure d'écrire les données dans un nouveau fichier dans l'ordre que vous souhaitez. Ceci est réalisable à travers le fichier Python IO.

code pseudo:

def filehandler(self, filename1, filename2): 
    Fd =open(filename1, "r") 
    Fd2 = open(filename2, "r") 
    while True: 
     line1 = Fd.readline() 
     if not line1: break # this will exit the loop if there is no more to read 
     Line1_array = line1.split() 
     # first line of first file is split and saved in an array deliniated by spaces. 
+0

assez juste, mais cela fonctionnera si les deux ensembles de données ne sont pas égaux en longueur? Je crois que l'un a beaucoup plus d'entrées que l'autre, donc j'ai besoin d'utiliser l'identifiant unique pour les faire correspondre. – HelloToEarth

+0

Bien sûr. Ajoutez une instruction If dans leur pour vérifier et voir s'il y a une autre ligne. Ce sera la même façon que vous sortez de la boucle while. –