En este artículo, discutiremos cómo contar las ocurrencias de un valor de columna específico en la columna pandas.
Conjunto de datos en uso:
Podemos contar usando el método value_counts() . Esta función se usa para contar los valores presentes en todo el marco de datos y también contar los valores en una columna en particular.
Sintaxis :
data['column_name'].value_counts()[value]
dónde
- data es el marco de datos de entrada
- valor es el valor de string/entero presente en la columna que se va a contar
- column_name es la columna en el marco de datos
Ejemplo : para contar las ocurrencias de un valor específico
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # count values in name column print(data['name'].value_counts()['sravan']) # count values in subjects column print(data['subjects'].value_counts()['php']) # count values in marks column print(data['marks'].value_counts()[89])
Producción:
3 2 1
Si queremos contar todos los valores en una columna en particular, entonces no necesitamos mencionar el valor.
Sintaxis :
data['column_name'].value_counts()
Ejemplo: Para contar la ocurrencia de un valor en una columna en particular
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # count all values in name column print(data['name'].value_counts()) # count all values in subjects column print(data['subjects'].value_counts()) # count all values in marks column print(data['marks'].value_counts()) # count all values in age column print(data['age'].value_counts())
Producción:
Si queremos obtener los resultados en orden (como orden ascendente y descendente), tenemos que especificar el parámetro
Sintaxis:
orden ascendente:
data[‘column_name’].value_counts(ascending=True)
Orden descendiente:
data[‘column_name’].value_counts(ascending=False)
Ejemplo: obtener resultados de forma ordenada
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # count all values in name column in ascending order print(data['name'].value_counts(ascending=True)) # count all values in subjects column in ascending order print(data['subjects'].value_counts(ascending=True)) # count all values in marks column in descending order print(data['marks'].value_counts(ascending=False)) # count all values in age column in descending order print(data['age'].value_counts(ascending=False))
Producción:
Tratar con valores faltantes
Aquí podemos contar la ocurrencia con o sin valores NA. Al usar el parámetro dropna para incluir valores NA si se establece en True, no contará NA si se establece en False.
Sintaxis :
Incluir valores NA:
data[‘column_name’].value_counts(dropna=True)
Excluir valores NA:
data[‘column_name’].value_counts(dropna=False)
Ejemplo: tratar con valores faltantes
Python3
# import pandas module import pandas as pd #import numpy import numpy # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi', numpy.nan], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R', numpy.nan], 'marks': [98, 90, 78, 91, 87, 78, 89, 90, numpy.nan], 'age': [11, 23, 23, 21, 21, 21, 23, 21, numpy.nan] }) # count all values in name column including NA print(data['name'].value_counts(dropna=False)) # count all values in subjects column including NA print(data['subjects'].value_counts(dropna=False)) # count all values in marks column excluding NA print(data['marks'].value_counts(dropna=False)) # count all values in age column excluding NA print(data['age'].value_counts(dropna=True))
Producción:
Contar valores con frecuencias relativas
Vamos a agregar el parámetro de normalización para obtener las frecuencias relativas de los datos repetidos. Se establece en Verdadero.
Sintaxis:
data[‘column_name’].value_counts(normalize=True)
Ejemplo: contar valores con frecuencias relativas
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # count all values in name with relative frequencies print(data['name'].value_counts(normalize=True))
Producción:
sravan 0.375 ojaswi 0.125 ojsawi 0.125 bobby 0.125 rohith 0.125 gnanesh 0.125 Name: name, dtype: float64
Obtén detalles
Si queremos obtener detalles como recuento, media, estándar, mínimo, 25 %, 50 %, 75 %, máximo, entonces tenemos que usar el método describe().
Sintaxis :
data['column_name'].describe()
Ejemplo: Obtener detalles
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # get about age print(data['age'].describe())
Producción:
count 8.000000 mean 20.500000 std 3.964125 min 11.000000 25% 21.000000 50% 21.000000 75% 23.000000 max 23.000000 Name: age, dtype: float64
Usando tamaño() con groupby()
Aquí esto devolverá el recuento de todas las ocurrencias en una columna en particular.
Sintaxis :
data.groupby('column_name').size()
Ejemplo : Conteo de todas las ocurrencias en una columna en particular
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # get the size of name print(data.groupby('name').size())
Producción:
name bobby 1 gnanesh 1 ojaswi 1 ojsawi 1 rohith 1 sravan 3 dtype: int64
Usando count() con groupby()
Aquí, esto devolverá el recuento de todas las ocurrencias en una columna en particular en todas las columnas.
Sintaxis :
data.groupby('column_name').count()
Ejemplo : Conteo de todas las ocurrencias en una columna en particular
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # get the count of name across all columns print(data.groupby('name').count())
Producción:
Uso de contenedores
Si queremos obtener el conteo en un rango particular de valores, entonces se aplica el parámetro bins. Podemos especificar el número de rangos (contenedores).
Sintaxis:
(data['column_name'].value_counts(bins)
dónde,
- data es el marco de datos de entrada
- column_name es la columna para obtener contenedores
- bins es el número total de bins a especificar
Ejemplo: Obtener el recuento en un rango particular de valores
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'ojsawi', 'bobby', 'rohith', 'gnanesh', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css', 'python', 'R'], 'marks': [98, 90, 78, 91, 87, 78, 89, 90], 'age': [11, 23, 23, 21, 21, 21, 23, 21] }) # get count of age column with 6 bins print(data['age'].value_counts(bins=6)) # get count of age column with 4 bins print(data['age'].value_counts(bins=4))
Producción:
(19.0, 21.0] 4 (21.0, 23.0] 3 (10.987, 13.0] 1 (17.0, 19.0] 0 (15.0, 17.0] 0 (13.0, 15.0] 0 Name: age, dtype: int64 (20.0, 23.0] 7 (10.987, 14.0] 1 (17.0, 20.0] 0 (14.0, 17.0] 0 Name: age, dtype: int64
Usando aplicar()
Si queremos obtener un recuento de todas las columnas en todas las columnas, entonces tenemos que usar la función apply(). En eso usaremos el método value_counts().
Sintaxis:
data.apply(pd.value_counts)
Ejemplo: obtener el recuento de todas las columnas en todas las columnas
Python3
# import pandas module import pandas as pd # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({ 'name': ['sravan', 'bobby', 'sravan', 'sravan', 'ojaswi'], 'subjects': ['java', 'php', 'java', 'html/css', 'python'], 'marks': [98, 90, 78, 91, 87], 'age': [11, 23, 23, 21, 21] }) # get all count data.apply(pd.value_counts)
Producción:
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA