Ich habe einen Pandas-Datenrahmen. Ich möchte die eindeutigen Werte einer seiner Spalten in aufsteigender Reihenfolge drucken. So mache ich es:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
Das Problem ist, dass ich ein None
für die Ausgabe bekomme.
7 Antworten
sorted
gibt eine neue sortierte Liste aus den Elementen in iterable zurück.
CODE
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print sorted(a)
AUSGABE
[1, 2, 3, 6, 8]
Kam heute selbst über die Frage. Ich denke, der Grund, warum Ihr Code 'None' zurückgibt (genau das, was ich mit derselben Methode erhalten habe), ist der folgende
a.sort()
Ruft die Sortierfunktion auf, um die Liste zu mutieren a. Nach meinem Verständnis ist dies ein Änderungsbefehl. Um das Ergebnis zu sehen, müssen Sie print (a) verwenden.
Meine Lösung, als ich versuchte, alles in Pandas zu halten:
pd.Series(df['A'].unique()).sort_values()
sort
sortiert an Ort und Stelle, gibt also nichts zurück:
In [54]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
a
Out[54]:
array([1, 2, 3, 6, 8], dtype=int64)
Sie müssen also nach dem Aufruf von sort
erneut print a
aufrufen.
Z.B.:
In [55]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
print(a)
[1 2 3 6 8]
Eine andere Möglichkeit ist die Verwendung des Datentyps .
Einige Merkmale von Sets : Sets sind ungeordnet, können gemischte Datentypen enthalten, Elemente in einem Set können nicht wiederholt werden und sind veränderbar.
Lösen Sie Ihre Frage:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
sorted(set(df.A))
Die Antwort in Liste Typ:
[1, 2, 3, 6, 8]
Sie können auch die drop_duplicates ( ) statt unique ()
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].drop_duplicates()
a.sort()
print a
Ich bevorzuge den Oneliner:
print(sorted(df['Column Name'].unique()))
Ich würde vorschlagen, numpys Sortierung zu verwenden, da es sowieso das ist, was Pandas im Hintergrund tun:
import numpy as np
np.sort(df.A.unique())
Aber alles in Pandas zu tun ist auch gültig.
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.