Heim > Backend-Entwicklung > Python-Tutorial > Geben Sie einige Tipps zur Python-Datenstatistik

Geben Sie einige Tipps zur Python-Datenstatistik

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-08-04 08:55:43
Original
1126 Leute haben es durchsucht

Ich habe Python kürzlich für die Datenstatistik verwendet. Hier ist eine Zusammenfassung einiger Tipps, die ich während der letzten Verwendung gefunden und zusammengefasst habe. Ich hoffe, dass es einigen Kindern helfen kann, die dies tun. Einige Techniken werden sehr häufig verwendet und wir schenken ihnen normalerweise keine Beachtung. In bestimmten Situationen können diese kleinen Methoden jedoch dennoch große Hilfe leisten.

1. Ordnen Sie Schlüssel mehreren Werten im Wörterbuch zu

{'b': [4, 5, 6], 
'a': [1, 2, 3]}
Nach dem Login kopieren

Manchmal möchten wir, wenn wir die gleichen Schlüsselwerte zählen, alle Einträge mit demselben Schlüssel zu einem Wörterbuch mit dem Schlüssel als Schlüssel hinzufügen und dann verschiedene Operationen ausführen. Zu diesem Zeitpunkt können wir den folgenden Code verwenden:

from collections import defaultdict
d = defaultdict(list)
print(d)
d['a'].append(1)
d['a'].append(2)
d['a'].append(3)
d['b'].append(4)
d['b'].append(5)
d['b'].append(6)
print(d)
print(d.get("a"))
print(d.keys())
print([d.get(i) for i in d])
Nach dem Login kopieren

Die Methoden in Sammlungen werden hier verwendet. Sie enthalten viele nützliche Methoden. Wir haben Zeit, sie weiterhin eingehend zu verstehen.

Das Ergebnis der Ausführung des obigen Codes:

defaultdict(, {})
defaultdict(, {'b': [4, 5, 6], 'a': [1, 2, 3]})
[1, 2, 3]
dict_keys(['b', 'a'])
[[4, 5, 6], [1, 2, 3]]
Nach dem Login kopieren

Nachdem wir die Daten eingegeben haben, entspricht dies einer schnellen Gruppierung und dem Durchlaufen jeder Gruppe, um einige der benötigten Daten zu zählen.

2. Konvertieren Sie schnell Wörterbuch-Schlüssel-Wert-Paare

data = {...}
zip(data.values(), data.keys())
Nach dem Login kopieren

Daten sind unser Datenformat. Verwenden Sie zip für eine schnelle Schlüsselwertkonvertierung, und dann können Sie Funktionen wie max und min für Datenoperationen verwenden.

3. Wörterbuch nach gemeinsamem Schlüssel sortieren

from operator import itemgetter
data = [
  {'name': "bran", "uid": 101},
  {'name': "xisi", "uid": 102},
  {'name': "land", "uid": 103}
]
print(sorted(data, key=itemgetter("name")))
print(sorted(data, key=itemgetter("uid")))
Nach dem Login kopieren

Das Datenformat ist Daten. Wenn wir Namen oder UIDs sortieren möchten, verwenden wir die Methode im Code.
Laufergebnis:

[{'name': 'bran', 'uid': 101}, {'name': 'land', 'uid': 103}, {'name': 'xisi', 'uid': 102}]
[{'name': 'bran', 'uid': 101}, {'name': 'xisi', 'uid': 102}, {'name': 'land', 'uid': 103}]
Nach dem Login kopieren

Genau wie wir es erwartet haben

4. Gruppieren Sie mehrere Wörterbücher in der Liste nach einem bestimmten Feld

Beachten Sie, dass die Daten vor der Gruppierung zunächst sortiert werden müssen. Das Sortierfeld wird entsprechend den tatsächlichen Anforderungen ausgewählt

Zu verarbeitende Daten:

rows = [
  {'name': "bran", "uid": 101, "class": 13},
  {'name': "xisi", "uid": 101, "class": 11},
  {'name': "land", "uid": 103, "class": 10}
]
Nach dem Login kopieren

Erwartetes Verarbeitungsergebnis:

{
101: [{'name': 'xisi', 'class': 11, 'uid': 101},{'name': 'bran', 'class': 13, 'uid': 101}],
103: [{'name': 'land', 'class': 10, 'uid': 103}]
}
Nach dem Login kopieren

Wir gruppieren nach UID. Dies ist nur eine Demonstration. UID wird im Allgemeinen nicht wiederholt.

Das ist etwas komplizierter, lass es uns Schritt für Schritt aufschlüsseln

some = [('a', [1, 2, 3]), ('b', [4, 5, 6])]
print(dict(some))
Nach dem Login kopieren

Ergebnis:

{'b': [4, 5, 6], 'a': [1, 2, 3]}
Nach dem Login kopieren

Unser Ziel ist es, Tupel in Wörterbücher umzuwandeln. Dies ist sehr einfach und sollte von jedem verstanden werden. Dann machen wir den nächsten Schritt, um die zu verarbeitenden Daten zu sortieren:

data_one = sorted(rows, key=itemgetter("class"))
print(data_one)
data_two = sorted(rows, key=lambda x: (x["uid"], x["class"]))
print(data_two)
Nach dem Login kopieren

Hier bieten wir zwei Sortiermethoden mit demselben Prinzip, aber mit leicht unterschiedlichen Stilen. Die erste data_one besteht darin, itemgetter direkt zu verwenden. Wie wir es zuvor verwendet haben, kann es direkt nach einem bestimmten Feld sortiert werden, aber manchmal haben wir ein anderes Eine Bitte:

Sortieren Sie zuerst nach einem bestimmten Feld und dann nach einem anderen Feld, wenn das erste Feld wiederholt wird.

Zu diesem Zeitpunkt verwenden wir die zweite Methode, um Mehrfeldwerte zu sortieren.
Die Sortierergebnisse lauten wie folgt:

[{'name': 'land', 'class': 10, 'uid': 103}, {'name': 'xisi', 'class': 11, 'uid': 101}, {'name': 'bran', 'class': 13, 'uid': 101}]
[{'name': 'xisi', 'class': 11, 'uid': 101}, {'name': 'bran', 'class': 13, 'uid': 101}, {'name': 'land', 'class': 10, 'uid': 103}]
Nach dem Login kopieren

Wenn man die Ergebnisse langsam betrachtet, gibt es immer noch leichte Unterschiede.

Dann kommt der letzte Schritt, die Kombination der beiden Methoden, über die wir gerade gesprochen haben:

data = dict([(g, list(k)) for g, k in groupby(data_two, key=lambda x: x["uid"])])
print(data)
Nach dem Login kopieren

Wir gruppieren die sortierten Daten, generieren dann eine Liste von Tupeln und konvertieren sie schließlich in ein Wörterbuch. Wir sind hier fertig, wir haben die Daten erfolgreich gruppiert.

Einige Tipps zur Python-Datenstatistik finden Sie hier. Wenn Sie sie benötigen, können Sie darauf zurückgreifen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage