Tengo un marco de datos de pandas. Quiero imprimir los valores únicos de una de sus columnas en orden ascendente. Así es como lo estoy haciendo:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
El problema es que obtengo un None
resultado.
a.sort()
modificaa
y no devuelve nada, así que reemplace por:a.sort(); print a
Respuestas:
sorted
devuelve una nueva lista ordenada de los elementos en iterable.CÓDIGO
import pandas as pd df = pd.DataFrame({'A':[1,1,3,2,6,2,8]}) a = df['A'].unique() print sorted(a)
SALIDA
[1, 2, 3, 6, 8]
fuente
sort
ordena en su lugar, por lo que no devuelve nada: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)
Entonces tienes que
print a
volver a llamar después de la llamada asort
.P.ej.:
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]
fuente
También puede usar drop_duplicates () en lugar de unique ()
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]}) a = df['A'].drop_duplicates() a.sort() print a
fuente
drop_duplicates()
que es 3 veces más rápido que unique () en un marco de datos de 14107693 filas [Pandas 0.18]Prefiero el delineador:
print(sorted(df['Column Name'].unique()))
fuente
Encontré la pregunta yo mismo hoy. Creo que la razón por la que su código devuelve 'Ninguno' (exactamente lo que obtuve al usar el mismo método) es que
está llamando a la función de clasificación para mutar la lista a. A mi entender, este es un comando de modificación. Para ver el resultado, debe usar print (a).
Mi solución, ya que traté de mantener todo en pandas:
pd.Series(df['A'].unique()).sort_values()
fuente
pandas
solución porque poneNaN
valores al final y funciona con matrices de tipos mixtos.Sugeriría usar el tipo de numpy, ya que de todos modos es lo que hacen los pandas en segundo plano:
import numpy as np np.sort(df.A.unique())
Pero hacer todo en pandas también es válido.
fuente
Otra forma es usar el tipo de datos establecido .
Algunas características de los conjuntos : los conjuntos están desordenados, pueden incluir tipos de datos mixtos, los elementos de un conjunto no se pueden repetir, son mutables.
Resolviendo tu pregunta:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]}) sorted(set(df.A))
La respuesta en el tipo de lista :
[1, 2, 3, 6, 8]
fuente