Ich habe diese zwei Spalten in meinem csv (Adresse von New Home und Cancelled Can
in der CSV). Wenn eine Adresse gelöscht wird, muss unter Can
True geschrieben werden, aber manchmal vergisst der Endbenutzer, True zu schreiben und die gleiche Adresse erscheint zweimal. Ich möchte Python zu sagen Sie mir (nicht entfernen) die Adressen, die zweimal erscheinen, ohne dass die erste aufgehoben wird.Zeige mir doppelte Adressen pandas
Beispiel:
Date_Booked Address of New Home Can
01/07/2017 1234 SO Drive True
02/14/2017 4321 Python Court
03/17/2017 1234 SO Drive
03/23/2017 4321 Python Court
Wie Sie aus dem obigen Beispiel 1234 SO-Laufwerk wurde abgebrochen ansehen und Wahre geschrieben wurde, ist das, was wir wollen, aber 4321 Python Court wurde, dass abgebrochen wird, warum es zweimal geschrieben wurde aber da es unter Cancelled nicht True heißt, wird es zweimal in unserem csv auftauchen und alle möglichen Probleme verursachen.
import pandas as pd
first = pd.read_csv('Z:PCR.csv')
df = pd.DataFrame(first)
non_cancelled = df['Can'].apply(lambda x: x != 'True')
dup_addresses = non_cancelled.groupby('Address of New Home').filter(lambda x: len (x) > 1)
if not dup_addresses.empty:
raise Exception ('Same address written twice without cancellation')
Ich erhalte die folgende Fehlermeldung:
Traceback (most recent call last):
File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:4279)
File "pandas\src\hashtable_class_helper.pxi", line 404, in pandas.hashtable.Int64HashTable.get_item (pandas\hashtable.c:8543)
TypeError: an integer is required
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
dup_addresses = non_cancelled.groupby('Address of New Home').filter(lambda x: len (x) > 1)
KeyError: 'Address of New Home'
Jede Hilfe wäre sehr dankbar.
Danke, gibt es trotzdem, anstatt sie mit 'True' zu aktualisieren, kann ich sie bitte mit' End User Misssed' aktualisieren. –
np ist 'numpy' Ich nehme an, richtig? –
@JakeWagner ja, tut mir leid. Numpy, wo ist in diesem Fall bequemer.Die Syntax ist sauberer. Wir könnten Pandas immer noch benutzen, aber es ist ein bisschen hässlicher. Denken Sie daran, wir könnten uns viele Möglichkeiten vorstellen, dies zu lösen. Es war zu verstehen, was du am meisten herausforderst. – piRSquared