Je vais vous expliquer mon problème tout:
J'ai 2 fichiers csv:ajouter une colonne particulière d'un fichier csv à un autre en utilisant python
- projet table.csv (a environ 50 colonnes)
- interaction matrix.csv (a environ 45 colonnes)
Je veux ajouter la chaîne dans col[43]
du projet table.csv avec chaîne dans col[1]
d'interaction matrix.csv avec un point (.
) entre les deux chaînes e
suivant,
- interaction matrix.csv a un ensemble d'en-têtes ..
- son 1er col aura maintenant la chaîne ajoutée après avoir fait ce que je l'ai mentionné ci-dessus
- tous les autres colonnes n'ont que 0 et 0
- Je suis supposé extraire seulement les colonnes avec 1 de cette interaction-matrix.csv et le copier dans un nouveau fichier csv ... (avec la première colonne intacte)
c'est le code que je suis venu avec ...
Je reçois une erreur avec la ligne keepcols
...
import csv
reader=csv.reader(open("project-table.csv","r"))
writer=csv.writer(open("output.csv","w"),delimiter=" ")
for data in reader:
name1=data[1].strip()+'.'+data[43].strip()
writer.writerow((name1, None))
reader=csv.DictReader(open("interaction-matrix.csv","r"),[])
allrows = list(reader)
keepcols = [c for c in allrows[0] if all(r[c] != '0' for r in allrows)]
print keepcols
writer=csv.DictWriter(open("output1.csv","w"),fieldnames='keepcols',extrasaction='ignore')
writer.writerows(allrows)
c'est l'erreur que je reçois:
Traceback (most recent call last):
File "prg1.py", line 23, in ?
keepcols = [c for c in allrows[0] if all([r[c] != '0' for r in allrows])]
NameError: name 'all' is not defined
La table de projet et la matrice d'interaction ont les mêmes données dans leurs 1ères colonnes respectives. J'ai donc simplement ajouté col [43] de prj-table à col [1] de la même table ...
toute aide avec le code sera grandement appréciée ... – totallyignorant
quelle version de python utilisez-vous? 'all' a été ajouté dans python-2.5. Vous devez mettre à jour au moins à cette version, ou même mieux à la dernière stable 2.7 – SilentGhost
ok je viens de comprendre que j'utilise python 2.3 ... je vais changer ma version immédiatement – totallyignorant