J'ai un grand CSV autour de 24 millions de rangées et je veux couper en taille. P>
Voici un petit aperçu d'un CSV: P>
Je veux supprimer les rangées qui ont le même CIK et IP, car j'ai un tas de ces fichiers et qu'ils prennent beaucoup d'espace, je veux donc faire un moyen efficace de supprimer les doublons. P >
J'ai fait tester combien de doublons de Cik y a-t-il et, pour certains, il y a plus de 100 000, c'est pourquoi je veux réduire ces doublons. P>
J'ai essayé des choses mais dans la plupart des cas, il a échoué, à cause de la taille de la CSV. P>
3 Réponses :
Vous pouvez effectuer ce qui suit: et profiter de votre CSV sans les duplicats. P> P>
Je ne sais pas que les pandas vont travailler, à cause de la taille de la CSV
Voici un exemple en utilisant ceci évite d'ouvrir l'ensemble du fichier à la fois (ouverture en 100000 des morceaux de ligne à la place) et laissent tomber des doublons comme ça va. p> p> Pandas code> et
Réduire code>:
Je pense que c'est une bonne solution, je vais l'essayer, merci @pmende
Je reçois cette erreur lorsque vous essayez de l'exécuter: "SYS: 1: Dtypewarning: colonnes (14) ont des types mixtes. Spécifiez DTYPE Option sur Importer ou définir LOW_MEMORY = FAUX."
@StEfan Si vous connaissez les types de toutes vos colonnes, vous pouvez les spécifier dans l'appel à pd.read_csv code> (voir Documents: Pandas.pydata.org/pandas-Docs/stable/reference/api/... ) en passant un
DICT CODE> au paramètre
dtype code>. Par exemple, vous pouvez dire quelque chose comme:
dtypes = {"ip": "str", "date": "str",
READ_CSV CODE>, vous devez simplement ajouter le paramètre
DTYPE = DTYPES CODE>. Généralement, vous pouvez ignorer le
dtypewarning code> et Pandas fait un bon travail d'inférence quels types à utiliser.
Un autre moyen rapide est de le faire avec où ps Vous devriez avoir awk code>, en cours d'exécution à partir de la ligne de commande:
fichier.csv code> est le Nom de votre fichier et
File_uniq.csv code> est l'endroit où vous souhaitez que vos enregistrements déduplisés (1 $ et 5 $ sont des numéros de colonne, 1 pour
IP code> et 5 pour
cik code>) p>
awk code> si vous êtes sur un Linux / Mac, mais peut avoir besoin de le télécharger séparément sur Windows P> P>
AWK code> est vraiment une bonne option et sera presque certainement des pandas.
Bien que ce soit hors sujet, mais la réponse brillante et a aidé à trier mon problème
Merci pour ça. Je traite également un gros fichier (plus de 4 Go) sur un bélier de 32 Go, mais il a été tué. Awk m'a sauvé.
Que voulez-vous dire par il a échoué i>? Le programme crash ou vous obtenez-t-il une sorte d'erreur?
Combien de doublons avez-vous par
CIK code> /
IP code>?
Les programmes ne fonctionnent pas, j'ai des erreurs, mais quand je les ai réparées, le programme ne fonctionnait tout simplement pas, sa juste boucle à l'infini, c'est pourquoi j'ai posté pour que je puisse avoir une suggestion sur la façon de faire comment le faire
J'ai fait un script de test pour compter le nombre de personnes identiques et pour certains, de plus de 100k, c'est la raison d'enlever certains d'entre eux
Êtes-vous en mesure de la lire avec succès dans des pandas alors la baisse de l'opération Drop_duplicates? Ou vous ne pouvez pas créer de DF avec succès?
Pouvez-vous publier ce que vous avez déjà essayé de voir pourquoi il boucle à l'infini?
Je n'ai pas utilisé de pandas, mais je vais essayer, car cela ne semble que la solution suggérée