Ich habe einen Datensatz mit ungefähr 60.000 Zeilen. Es ist eine Bestellung, bei der Sie keine eindeutige ID haben. Beispieldaten unten.
36 40 41 42 43 45 46
38 39 48 50 51 57
41 59 62
63 66 67 68
74 75 76 77
In der obigen Liste ist jede Nummer ein gekaufter Artikel. Ich brauche folgendes:
- Insgesamt eindeutige Elemente im Datensatz.
- Top 5 Artikel, die am meisten gekauft wurden.
3 Antworten
Dies sollte es tun:
from collections import Counter
items = Counter()
with open('data_file.txt', 'r') as f:
for line in f:
items.update(line.split())
print("Total Unique Items: {0}".format(len(items)))
for item, count in items.most_common(5):
print("Item {0} was purchased {1} times".format(item, count))
Ja, es ist so kurz :).
Um die Gesamtlänge der Liste zu erhalten, durchlaufen Sie die Zeilen mit einer Schleife und fügen Sie jede Ganzzahl mit list.append(x)
zu einer Python-Liste hinzu, unter der Bedingung, dass if x not in list
die Duplikate entfernt. Sortieren Sie dann die Liste mit list.sort()
. Führen Sie abschließend len(list)
aus.
Um die fünf meistgekauften Artikel zu erhalten, durchlaufen Sie die Zeilen erneut mit einer Schleife. Fügen Sie diesmal jedoch alle Ganzzahlen zu einer Liste hinzu, unabhängig von Duplikaten. Dann mache collections.Counter(list).most_common(5)[0][0]
.
Siehe die Python-Listendokumente hier und die Sammlungsdokumente hier.
Angenommen, Ihr Datensatz ist eine CSV-Datei oder eine Textdatei.
from collections import Counter
with open(path, "r") as fp:
raw = fp.readlines()
purchases = [item for line in raw for item in line.split()]
print "Unique ids: %s" %(len(set(purchases))
print "Most purchased ids:" %(",".join([ item[1] for item in Counter(purchases).most_common(5)]))
Der obige Code sollte Ihre Ergebnisse liefern.
Ich hoffe es hilft.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.