lange Zeit lurker, aber das erste Mal Poster auf StackOverflow.Vermeiden Sie die Duplizierung von Zeilen bei der Zusammenführung
Ich habe eine Wand mit einem Datenanalyseprojekt getroffen, an dem ich arbeite.
Wesentlichen, wenn ich zB CSV 'A':
id | item_num
A123 | 1
A123 | 2
B456 | 1
Und ich habe zB CSV 'B':
id | description
A123 | Mary had a...
A123 | ...little lamb.
B456 | ...Its fleece...
Wenn ich ein merge
mit Pandas
durchführen, es endet wie dies:
id | item_num | description
A123 | 1 | Mary had a...
A123 | 2 | Mary had a...
A123 | 1 | ...little lamb.
A123 | 2 | ...little lamb.
B456 | 1 | Its fleece...
Wie könnte ich stattdessen es werden:
id | item_num | description
A123 | 1 | Mary had a...
A123 | 2 | ...little lamb...
B456 | 1 | Its fleece...
Dies ist mein Code:
import pandas as pd
# Import CSVs
first = pd.read_csv("../PATH_TO_CSV/A.csv")
print("Imported first CSV: " + str(first.shape))
second = pd.read_csv("../PATH_TO_CSV/B.csv")
print("Imported second CSV: " + str(second.shape))
# Create a resultant, but empty, DF, and then append the merge.
result = pd.DataFrame()
result = result.append(pd.merge(first, second), ignore_index = True)
print("Merged CSVs... resulting DataFrame is: " + str(result.shape))
# Lets do a "dedupe" to deal with an issue on how Pandas handles datetime merges
# I read about an issue where if datetime is involved, duplicate entires will be created.
result = result.drop_duplicates()
print("Deduping... resulting DataFrame is: " + str(result.shape))
# Save to another CSV
result.to_csv("EXPORT.csv", index=False)
print("Saved to file.")
ich wirklich jede mögliche Hilfe schätzen würde - ich bin sehr fest! Und ich habe es mit mehr als 20.000 Zeilen zu tun.
Danke.
Edit: mein Beitrag wurde als ein potenzielles Duplikat markiert. Es ist nicht, da ich nicht unbedingt versuche, eine Spalte hinzuzufügen - ich versuche nur zu verhindern, dass die description
mit der Anzahl von item_num
multipliziert wird, die einer bestimmten id
zugeschrieben werden.
UPDATE 21.06:
Wie könnte ich die Zusammenführung zu tun, wenn die 2 Verschlechterungsfaktoren wie diese stattdessen sehen?
id | item_num | other_col
A123 | 1 | lorem ipsum
A123 | 2 | dolor sit
A123 | 3 | amet, consectetur
B456 | 1 | lorem ipsum
Und ich habe zB CSV 'B':
id | item_num | description
A123 | 1 | Mary had a...
A123 | 2 | ...little lamb.
B456 | 1 | ...Its fleece...
So beende ich oben mit:
id | item_num | other_col | description
A123 | 1 | lorem ipsum | Mary Had a...
A123 | 2 | dolor sit | ...little lamb.
B456 | 1 | lorem ipsum | ...Its fleece...
Bedeutung, die Zeile, die die 3, mit „amet, consectetur hat "in der anderen Spalte" wird ignoriert.
Mögliche Duplikat [Hinzufügen neuer Spalte zu bestehenden Datenrahmen in Python Pandas] (http://stackoverflow.com/questions/12555323/adding-new-column-to-existing-Datenrahmen-in-Python-Pandas) – TemporalWolf
Es sieht so aus, als ob Sie ['concat' oder' append'] möchten (http://pandas.pydata.org/pandas- docs/stable/merging.html), nicht "fusionieren". – TemporalWolf