J'ai des problèmes avec le traitement de certains fichiers de données CSV pour un projet. Quelqu'un a suggéré d'utiliser le lecteur python/csv pour aider à décomposer les fichiers, ce que j'ai eu du succès avec, mais pas d'une manière que je puisse utiliser.Écriture de fichiers csv avec python avec des paramètres de formatage précis
Ce code est un peu différent de ce que j'essayais auparavant. Je tente essentiellement de créer un tableau. Dans le format de données brutes, les 7 premières lignes ne contiennent aucune donnée, puis chaque colonne contient 50 expériences, chacune avec 4000 lignes, pour 200 000 lignes au total. Ce que je veux faire est de prendre chaque colonne, et en faire un fichier csv individuel, avec chaque expérience dans sa propre colonne. Ce serait donc un tableau de 50 colonnes et 4000 lignes pour chaque type de données. Le code ici décompose les valeurs correctes, je pense que la logique est correcte, mais elle dégrade le contraire de la façon dont je le veux. Je veux les séparateurs sans guillemets (les virgules et les espaces) et je veux les valeurs de l'élément entre guillemets. En ce moment, c'est exactement le contraire pour les deux, les valeurs d'éléments sans guillemets, et les séparateurs entre guillemets. J'ai passé plusieurs heures à essayer de comprendre comment faire cela en vain,
import csv
ifile = open('00_follow_maverick.csv')
epistemicfile = open('00_follower_maverick_EP.csv', 'w')
reader = csv.reader(ifile)
colnum = 0
rownum = 0
y = 0
z = 8
for column in reader:
rownum = 4000 * y + z
for element in column:
writer = csv.writer(epistemicfile)
if y <= 50:
y = y + 1
writer.writerow([element])
writer.writerow(',')
rownum = x * y + z
if y > 50:
y = 0
z = z + 1
writer.writerow(' ')
rownum = x * y + z
if z >= 4008:
break
ce qui se passe: Je prends chaque ligne dans le fichier de données brutes dans les itérations de 4000, afin que je puisse séparer les avec des virgules pour les 50 expériences. Lorsque y, l'indicateur d'expérience atteint ici 50, il revient à l'expérience 0 et ajoute 1 à z, ce qui lui indique quelle ligne regarder, par la formule de 4000 * y + z. Quand il complète les lignes pour les 50 expériences, c'est fini. Le problème ici est que je ne sais pas comment obtenir python pour écrire les valeurs réelles entre guillemets, et mes séparateurs en dehors des guillemets.
Toute aide sera très appréciée. Excuses si cela semble une question stupide, je n'ai aucune expérience de programmation, c'est ma première tentative jamais. Je vous remercie. Désolé, je vais essayer de rendre cela plus clair. Le fichier csv d'origine comporte plusieurs colonnes, chacune d'entre elles constituant des ensembles de données différents.
Un exemple miniature du fichier brut ressemble:
column1 column2 column3
exp1data1time1 exp1data2time1 exp1data3time1
exp1data1time2 exp1data2time2 exp1data3time2
exp2data1time1 exp2data2time1 exp2data3time1
exp2data1time2 exp2data2time2 exp2data3time2
exp3data1time1 exp3data2time1 exp3data3time1
exp3data1time2 exp3data2time2 exp3data3time2
Ainsi, la version actuelle a 4000 lignes au lieu de 2 pour chaque nouvelle expérience. Il y a 40 colonnes dans la version actuelle, mais fondamentalement, le type de données dans le fichier brut correspond au numéro de colonne. Je veux séparer chaque type de données ou colonne dans un fichier csv individuel.
Cela ressemblerait à ceci:
csv file1
exp1data1time1 exp2data1time1 exp3data1time1
exp1data1time2 exp2data1time2 exp3data1time2
csv file2
exp1data2time1 exp2data2time1 exp3data2time1
exp1data2time2 exp2data2time2 exp3data2time2
csv file3
exp1data3time1 exp2data3time1 exp3data3time1
exp1data3time2 exp2data3time2 exp3data3time2
Alors, je déplace les données brutes dans le fichier à une nouvelle colonne, et chaque type de données à son propre fichier. En ce moment je vais faire un seul fichier, jusqu'à ce que je puisse déplacer les expériences séparées pour séparer les colonnes dans le nouveau fichier. Donc, dans le code, ce qui précède ferait le 4000 en 2. J'espère que cela a plus de sens, mais sinon, je vais essayer à nouveau.
Je pense que nous allons avoir du mal à suivre cela. Afficher l'entrée et la sortie désirée. –
Je suggère que nous apprenions à M. Harrison «à pêcher» ou lui indiquions «comment pêcher» plutôt que «lui donner un poisson». Ce code n'est pas son problème principal. – msw