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

Geben Sie einige Tipps zur Python-Datenstatistik

WBOY
WBOYOriginal
2016-08-04 08:55:431083Durchsuche

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]}

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])

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]]

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())

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")))

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}]

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}
]

Erwartetes Verarbeitungsergebnis:

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

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))

Ergebnis:

{'b': [4, 5, 6], 'a': [1, 2, 3]}

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)

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}]

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)

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.

Stellungnahme:
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