Maison  >  Article  >  développement back-end  >  Python lit le fichier csv, supprime une colonne puis écrit un nouveau tutoriel technique sur le fichier

Python lit le fichier csv, supprime une colonne puis écrit un nouveau tutoriel technique sur le fichier

小云云
小云云original
2017-12-30 13:23:552381parcourir

Cet article partage principalement un exemple de lecture d'un fichier csv avec Python, de suppression d'une colonne puis d'écriture d'un nouveau fichier. Il a une grande valeur de référence et j'espère qu'il sera utile à tout le monde. Suivons l'éditeur pour y jeter un œil. J'espère que cela pourra aider tout le monde à mieux maîtriser Python

a utilisé deux méthodes pour résoudre ce problème, qui sont toutes deux des solutions existantes sur Internet.

Description du scénario :

Il y a un fichier de données enregistré en mode texte, et maintenant il y a trois colonnes user_id, plan_id, mobile_id. Le but est d'obtenir de nouveaux fichiers avec uniquement mobile_id, plan_id.

Solution

Option 1 : Utiliser Python pour ouvrir des fichiers et écrire des fichiers. Jouez simplement à travers les données, traitez les données dans la boucle for et écrivez-les dans un nouveau fichier.

Le code est le suivant :


def readwrite1( input_file,output_file):
 f = open(input_file, 'r')
 out = open(output_file,'w')
 print (f)
 for line in f.readlines():
 a = line.split(",")
 x=a[0] + "," + a[1]+"\n"
 out.writelines(x)
 f.close()
 out.close()

Option 2 : Utiliser pandas Lisez les données dans le DataFrame puis divisez les données. Utilisez directement la fonction d'écriture du DataFrame pour écrire dans le nouveau fichier

Le code est le suivant :


def readwrite2(input_file,output_file): date_1=pd.read_csv(input_file,header=0,sep=',') date_1[['mobile', 'plan_id']].to_csv(output_file, sep=',', header=True,index=False)

Du point de vue du code, la logique des pandas est plus claire.

Jetons un coup d'œil à l'efficacité d'exécution !


def getRunTimes( fun ,input_file,output_file):
 begin_time=int(round(time.time() * 1000))
 fun(input_file,output_file)
 end_time=int(round(time.time() * 1000))
 print("读写运行时间:",(end_time-begin_time),"ms")

getRunTimes(readwrite1,input_file,output_file) #直接撸数据
getRunTimes(readwrite2,input_file,output_file1) #使用dataframe读写数据

Durée d'exécution en lecture et en écriture : 976 ms

Durée d'exécution en lecture et en écriture : 777 ms

input_file Environ Avec 270 000 données, l'efficacité du dataframe est encore plus rapide que celle de la boucle for. Si la quantité de données est plus grande, l'effet sera-t-il plus évident ?

Ensuite, essayez d'augmenter le nombre d'enregistrements input_file. Les résultats sont les suivants

input_file       readwrite1       readwrite2      
27W 976 777
55W 1989 1509
110W 4312 3158

D'après les résultats des tests ci-dessus, l'efficacité du dataframe est augmentée d'environ. 30%.

Recommandations associées :

Exemple détaillé d'utilisation de Python pour filtrer et supprimer des fichiers dans un répertoire

Une brève introduction à Python NLP

Explication du système de gestion des utilisateurs Python avec des exemples

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn