Analyse du fichier txt CSV / délimité par tabulation avec Python
J'ai actuellement un fichier CSV qui, lorsqu'il est ouvert dans Excel, a un total de 5 colonnes. Les colonnes A et C sont de toute importance pour moi et les données dans les colonnes restantes n'est pas pertinent.
De départ sur la ligne 8 et ensuite de travailler dans des multiples de 7 (ie. lignes 8, 15, 22, 29, 36, etc...), je suis à la recherche pour créer un dictionnaire avec Python 2.7 avec les informations de ces champs. Les données de la colonne A sera la clé (un entier à 6 chiffres) et les données dans la colonne C étant la valeur correspondant à la clé. J'ai essayé de mettre en évidence ce ci-dessous, mais la mise en forme n'est pas la meilleure:-
A B C D
1 CDCDCDCD
2 VDDBDDB
3
4
5
6
7 DDEFEEF FEFEFEFE
8 123456 JONES
9
10
11
12
13
14
15 293849 SMITH
Ci-dessus, je suis à la recherche d'extraire la valeur de A7 (DDEFEEF) comme une clé dans mon dictionnaire et "FEFEFEFE", les données respectives, puis ajouter une autre entrée de mon dictionnaire, le saut à la ligne 15 avec "2938495" ma clé et de "Smith" étant la valeur correspondante.
Des suggestions? Le fichier source est un .fichier txt avec les entrées étant délimité par des tabulations.
Grâce
Précisions:
Juste pour clarifier, jusqu'à présent, j'ai essayé de le ci-dessous:-
import csv
mydict = {:}
f = open("myfile", 'rt')
reader = csv.reader(f)
for row in reader:
print row
Le ci-dessus affiche tout le contenu si une ligne à la fois. Je l'ai fait essayer "pour la ligne(7) dans le lecteur", mais cette renvoyé une erreur. J'ai ensuite fait des recherches et au-dessous, mais cela n'a pas fonctionné non plus:
import csv
from itertools import islice
entries = csv.reader(open("myfile", 'rb'))
mydict = {'key' : 'value'}
for i in xrange(6):
mydict['i(0)] = 'I(2) # integers representing columns
range = islice(entries,6)
for entry in range:
mydict[entries(0) = entries(2)] # integers representing columns
source d'informationauteur thefragileomen
Vous devez vous connecter pour publier un commentaire.
Commencez par tourner le texte dans une liste de listes. Qui prendra en charge l'analyse de la partie:
Le reste peut être fait avec indexé recherches:
Bien qu'il n'y a rien de mal avec les autres solutions présentées, vous pouvez simplifier considérablement aggraver vos solutions à l'aide de python excellente bibliothèque pandas.
Pandas est une bibliothèque pour la manipulation des données en Python, préféré par un grand nombre de Données Scientifiques.
Pandas a simplifié CSV interface permettant de lire et d'analyser des fichiers, qui peut être utilisé pour renvoyer une liste de dictionnaires, chacun contenant une seule ligne du fichier. Les clés sont les noms de colonnes et les valeurs seront celles en chaque cellule.
Dans votre cas:
Si le fichier est volumineux, vous ne pouvez pas voulez charger entièrement en mémoire à la fois. Cette approche permet d'éviter que. (Bien sûr, faire un dict de il pourrait encore prendre un peu de RAM, mais c'est la garantie d'être plus petit que le fichier d'origine.)
Edit: Pas sûr de l'endroit où j'ai eu
extend
d'avant. Je voulais direupdate