0
votes

Combinez 2 fichier CSV à l'aide de Python avec le montant spécifié

Je veux combiner 2 données de fichiers CSV, mais pas toutes les données. par exemple: A.CSV + B.CSV, où b.csv ont 20 données. Mais je veux prendre seulement 10 données de cela, puis prendre 11-20 données. Ou les 10 premiers et la deuxième 10

Insérez ensuite les 10 premières données dans A.CSV et les 10 dernières données dans A.CSV Ma question est de savoir comment puis-je prendre uniquement des données totales spécifiques? P>

Voici mon code: P>

import pandas as pd

df1 = pd.read_csv('testNegatif.csv')
df2 = pd.read_csv('trainNegatif.csv', nrows=10)

output=df1.append(df2)
output.to_csv("output.csv", sep=',')


3 commentaires

Vous voulez ajouter dix rangées de b.csv à A.CSV? Quel dix - les dix premières rangées?


oui, peut être aléatoire ou le premier hehe


Voir l'option NRows dans pandas.pydata.org/pandas-docs/stable/reference/api/...


3 Réponses :


0
votes

sans utiliser de pandas. Lisez les lignes de chaque fichier; ajouter dix lignes d'une donnée d'un fichier à l'autre; Écrivez le résultat à un autre fichier.

import itertools
with open('a.csv') as a, open('b.csv') as b, open('output.csv', 'w') as out:
    first_ten = itertools.islice(b, 10)
    for line in itertools.chain(a, first_ten):
        out.write(line)


1 commentaires

J'ai déjà essayé le code avec Pandas, # Sortie = DF1.Append (DF2 [: 200]), mais ne fonctionne toujours pas :(



0
votes
import pandas as pd
import numpy as np
# Creating two dataframes with data that overlap, so we don't want all of the 'b' data.
# We want to strip off '3,4,5' as they exist in 'a' as well
# ----------Creating the data frames----------
a = [1,2,3,4,5]
b = [3,4,5,6,7,8,9,10]

dfa = pd.DataFrame(a)
dfa.to_csv('one.csv', index=False)

dfb = pd.DataFrame(b)
dfb.to_csv('two.csv', index = False)
# ---------------------------------------------

# --------Reading through the dataframes-------
one = pd.read_csv('one.csv')
two = pd.read_csv('two.csv')
# ---------------------------------------------

# Stripping off the first 3 data of 'two' the list
output = one.append(two[3:])
output.to_csv("output.csv", sep=',', index=False)
# ---------------------------------------------
I hope this answers your question. The important part for you is output = one.append(two[3:]). There are more sophisticated ways to do the same thing but this is the simplest.

1 commentaires

J'ai eu une erreur iTipEError: parser_f () a eu un argument de mot clé inattendu 'index'



0
votes

Comme mentionné dans mon commentaire, vous pouvez utiliser NRows xxx

voir: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html Pour plus d'options


2 commentaires

BTW, que diriez-vous de NRows pour une gamme spécifique de lignes?


@Ecteurasovikartikasari Recherchez sur SkipRows et Skipfooter dans le lien que j'ai fourni.