Procesamiento de datos de Pandas (2): selección y clasificación de condiciones de datos.

El último artículo introdujo el uso de las funciones básicas de Pandas. Este artículo presenta principalmente las funciones de filtrado y clasificación condicional de Pandas, ¡también con la ayuda de una pequeña caja!

1. Leer datos

Primero use la función read_csv () para ingresar los datos. Estos datos son los datos de una categoría de producto, que tiene varios atributos como cantidad (clase), nombre (nombre), descripción (descripción), precio (precio):

import pandas as pd
url = "https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv"

chipo = pd.read_csv(url,sep = '\t')
chipo

1.png

2. Cambiar el tipo de datos y el nombre de carácter de una columna

Hay un carácter "$" en la columna de precio en los datos leídos. Al procesar datos, este símbolo debe eliminarse. A continuación, se muestran dos formas:

1. Reemplazar lista y serie, primero formatee cada dato en una determinada columna para obtener la lista, y luego asigne la lista a la columna que necesita ser reemplazada;

prices = [float(value[1:-1]) for value in chipo.item_price]
chipo.item_price = prices

2. Utilice las funciones apply () y lambda para reemplazar;

chipo['item_price'] = chipo['item_price'].apply(lambda x:float(x[1:-1]))

2.png

3. Eliminar datos repetidos en varias columnas

La redundancia de datos a menudo ocurre cuando se procesan datos. En este momento, es necesario eliminar los datos redundantes en los datos de antemano (el fenómeno de múltiples columnas de datos en una fila). La función utilizada es drop_duplicates (['nombre de columna 1', función 'nombre de columna 2'])

Lo que se elimina aquí son los datos duplicados en las tres columnas de item_name, amount y choice_description:

chipo_filtered = chipo.drop_duplicates(['item_name','quantity','choice_description'])
chipo_filtered

4.png

4. Examen de enfermedades

1. Filtre los datos cuyo valor de cantidad es 1:

chipo_one_prod = chipo_filtered[chipo_filtered.quantity==1]
chipo_one_prod

6.png

2. Sobre la base de 1, filtre los datos cuyo item_price sea mayor que 10 y use nunique para ver el número de datos únicos item_name:

chipo_one_prod[chipo_one_prod['item_price']>10].item_name.nunique()


# 输出结果
# 25 

El filtrado condicional en 3, 2 también se puede utilizar para filtrar:

chipo.query("item_price>10")

5.png

4. Filtre los datos con varias condiciones y filtre los datos que satisfagan item_name como Chicken Bowl y cantidad como 1

chipo[(chipo['item_name']=='Chicken Bowl')&(chipo['quantity']==1)]

6.png

La instrucción condicional & (y) usada en 5 y 4, aquí están las siguientes | (o):

Necesita cumplir con los datos cuyo item_name no es Chicken Bowl o la cantidad es 1

chipo[(chipo['item_name']!='Chicken Bowl')|(chipo['quantity']!=1)]

huo.png

4. Ordena los datos de la columna especificada

1. Ordene una determinada columna de datos y el resultado final solo mostrará el resultado de esta columna después de ordenar. Instrucción de comando: data.column name.sort_values ​​(), por ejemplo, aquí está ordenando con la columna de item_name:

chipo.item_name.sort_values()# Sorting the values

15.png

2. Data.sort_values ​​(por = nombre de columna) se ordena por una cierta columna de datos, correspondiente a otros datos de columna, la posición debe cambiarse y todos los datos ordenados finalmente se muestran

chipo.sort_values(by = 'item_name')

7.png

Aplicación avanzada en 3, 2. Por ejemplo, aquí quiero ver el nombre del producto más caro en los datos . Aquí, utilizo el método de 2 para revertir el precio del artículo y luego extraigo el nombre del artículo de la primera fila de los datos ordenados.

chipo.sort_values(by = 'item_price',ascending = False).head(1).item_name

# 打印结果
# 3598    Chips and Fresh Tomato Salsa
Name: item_name, dtype: object

** 5, método data.loc para filtrar datos **

Nota: Cuando se usa el método data.loc para filtrar datos, solo los nombres de fila y columna se pueden usar como condiciones de filtrado

1. Filtre los datos con los nombres de fila 2, 3 y los nombres de columna amount, item_name, item_price

chipo.loc[[2,3],['quantity','item_name','item_price']]

8.png

2. No hay restricciones en el nombre de la fila, solo se filtran la cantidad del nombre de la columna y los datos del nombre del artículo.

chipo.loc[:,['quantity','item_name']]

9.png

3. No hay restricciones en los nombres de las columnas, solo se filtran los datos con los nombres de las filas 5 y 6

chipo.loc[[5,6],:]

10.png

4. La aplicación completa filtra: dos columnas de datos cuyo nombre de fila puede ser divisible por 8 y nombres de columna item_price y item_name

chipo.loc[chipo.index%8==0,['item_name','item_price']]

14.png

6, método data.iloc para filtrar datos

La idea de los métodos data.iloc y data.loc solo se puede seleccionar en función de los valores de índice, no los nombres de columna y los nombres de fila como condiciones de filtro

1. Filtre los datos en las filas 5-8 y columnas 2-3

chipo.iloc[4:8,1:3]

11.png

2. Filtre los datos en las filas 2-4;

chipo.iloc[1:4,:]

12.png

3. Filtre las dos primeras columnas de datos:

chipo.iloc[:,:2]

13.png

Lo anterior es el contenido completo de este artículo. Amigos que no estén familiarizados con la aplicación de algunos de los métodos en él, recuerden seguir el código y escribirlo nuevamente para profundizar su comprensión.

Supongo que te gusta

Origin blog.csdn.net/weixin_42512684/article/details/107081907
Recomendado
Clasificación