0
votes

Existe-t-il un moyen d'extraire des colonnes à l'aide du module de lecture de Python CSV?

Je peux ouvrir et lire un fichier CSV et imprimer les colonnes sélectionnées à l'aide du module CSV. Cependant, je n'ai pas pu extraire quelques colonnes et le stocker dans une liste à l'aide du module CSV

Mon fichier n'a que 4 colonnes (nom, équipe, collège et salaire) et je veux juste extraire 2 colonnes, nommément nom et salaire et Ensuite, je calcule tous les salaires de la colonne de salaire. Je cherche une solution de module CSV et non des pandas. Ceci est une exigence étrange.

ci-dessous sont mes codes: xxx

 nba.csv


4 commentaires

Vous pouvez le faire assez facilement à l'aide de Pandas Bibliothèque


Souhaitez-vous le sauvegarder dans CSV? Ou juste calculer la somme des salaires? Si tel est le cas, vous avez fait la partie la plus difficile, il suffit de définir une variable somme = 0 et dans votre boucle do somme + = ligne ["salaire]


Bonjour Frankie567, je veux stocker les 2 colonnes dans une liste appelée Données et elle sera utilisée ultérieurement.


Bonjour Sreekiran, oui je l'ai fait dans des pandas. Maintenant, mes besoins sont le module CSV et c'est mon problème.


4 Réponses :


1
votes

Vous pouvez le faire:

df = pd.read_csv(filename, usecols=['Name', 'Salary'])


1 commentaires

Merci. Je sais que cela peut être fait en pandas et c'est très simple. C'est juste que mon exigence est le module CSV.



1
votes

Mettre à jour

Si je comprends correctement: xxx

avec csv.reader ()

Importer csv < / p> xxx


12 commentaires

Merci Kostas. Oui, votre solution fonctionne. Question suivante, pouvez-vous remplacer csv.dicterreader avec csv.reader? Juste curieux.


@Tony oui vous pouvez le faire avec quelques modifications. dicterreader crée un objet de type dict que vous pouvez utiliser une clé pour utiliser des données d'autre part csv.reader est un objet de type liste que vous devez utiliser le numéro de la colonne. J'espère que j'ai aidé.


Salut Kostas, pourriez-vous fournir la syntaxe s'il vous plaît? Je ne pouvais pas le trouver ailleurs. Utilisation de votre programme, qu'est-ce qui peut être modifié.


Oui, j'ai testé vos codes. La sortie est légèrement sortie.


[{'Nom': 'Nom', 'Salaire': 'Position'}, {'Nom': 'Avery Bradley', 'Salaire': 'PG'}, {'Nom': 'Jae Crowder', 'Salaire ':' SF '}, {' Nom ':' John Holland ',' Salaire ':' SG '},


Lorsque vous utilisez csv.reader, je veux juste le nom et le salaire que sans les en-têtes. L'image que j'ai posté au-dessus de la même chose sauf sans les en-têtes et les données "Team" et "College".


Ensuite, vous avez probablement un délimiteur différent entre vos colonnes, il a donc fallu une autre colonne nommée position . Essayez de changer le délimiteur en disons délimiter = ';'


Si vous ne voulez pas que les en-têtes utilisent mieux, utilisez le dicterreader . Également dans le deuxième exemple si vous utilisez simplement des données = données [1:] vous retirez le premier élément qui sont les en-têtes.


Merci Kostas, avez-vous un lien Web où je peux en apprendre davantage sur DicterRer? Je souhaite rechercher les données ou supprimer en fonction de certains critères, supprimer ou ajouter plus de colonnes, etc.


Bonjour Kostas, pour CSV.Reader, comment puis-je modifier vos codes pour avoir les données pour le nom et le salaire sans les en-têtes. Juste 2 colonnes de données. Pourrais-tu me montrer. Pas de calcul ni d'affichage. Je suis très nouveau à cela.


@Tony c'est la documentation docs.python.org/3/library/csv.html < / a>


Merci Kostas, je vais y jeter un coup d'œil. Est-ce le seul site que vous avez? J'aimerais avoir plus d'exemples.



-1
votes

n'utilisez pas de pandas à moins que le fichier soit petit. Les pandas sont super lents.

import csv
data_list = []
with open('nba.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        data_list.append([row['Name'], row['Salary']])


0 commentaires