Processamento de dados do Pandas (2) - seleção e classificação das condições dos dados!

O último artigo introduziu o uso das funções básicas do Pandas.Este artigo apresenta principalmente as funções de filtragem condicional e classificação dos Pandas, também com a ajuda de um pequeno estojo!

1. Leia os dados

Primeiro, use a função read_csv () para obter os dados. Esses dados são os dados de uma categoria de produto, que tem vários atributos como quantidade (classe), nome (nome), descrição (descrição), preço (preço):

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. Altere o tipo de dados e o nome do caractere de uma coluna

Há um caractere "$" na coluna de preço nos dados lidos. Ao processar dados, esse símbolo precisa ser removido. Existem duas maneiras:

1. Substituir lista e série; primeiro formate cada dado em uma determinada coluna para obter a lista e, em seguida, atribua a lista à coluna que precisa ser substituída;

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

2. Use as funções apply () e lambda para substituir;

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

2.png

3. Elimine dados repetidos em várias colunas

A redundância de dados ocorre frequentemente durante o processamento de dados. Neste momento, é necessário eliminar os dados redundantes nos dados antecipadamente (o fenômeno de várias colunas de dados em uma linha). A função usada é drop_duplicates (['nome da coluna 1', 'nome da coluna 2']) função

O que é removido aqui são os dados duplicados nas três colunas de item_name, quantidade e escolha_descrição:

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

4.png

4. Triagem de condição

1. Filtre os dados cujo valor da quantidade é 1:

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

6.png

2. Com base em 1, filtre os dados cujo item_price seja maior que 10 e use nunique para visualizar o número de dados exclusivos item_name:

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


# 输出结果
# 25 

A filtragem condicional em 3, 2 também pode ser usada para filtrar:

chipo.query("item_price>10")

5.png

4. Filtre os dados com várias condições e filtre os dados que satisfazem o item_name como Chicken Bowl e a quantidade como 1

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

6.png

A declaração condicional & (e) usada em 5 e 4, aqui estão as seguintes | (ou):

Precisa atender os dados cujo item_name não é Chicken Bowl ou a quantidade é 1

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

huo.png

4. Classifique os dados da coluna especificada

1. Classifique uma determinada coluna de dados, e o resultado final só mostrará o resultado desta coluna após a classificação. Instrução de comando: data.column name.sort_values ​​(), por exemplo, aqui está a classificação com a coluna de item_name:

chipo.item_name.sort_values()# Sorting the values

15.png

2. Data.sort_values ​​(por = nome da coluna) é classificado por uma determinada coluna de dados, correspondendo a outros dados da coluna, a posição precisa ser alterada e todos os dados classificados finalmente exibidos

chipo.sort_values(by = 'item_name')

7.png

Aplicação avançada em 3, 2. Por exemplo, aqui eu quero ver o nome do produto mais caro nos dados . Aqui, eu uso o método de 2 para reverter o item_price e extrair o item_name da primeira linha dos dados classificados

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 dados **

Nota: Ao usar o método data.loc para filtrar dados, apenas nomes de linhas e nomes de colunas podem ser usados ​​como condições de filtro

1. Filtre os dados com nomes de linha 2, 3 e nomes de coluna quantidade, item_name, item_price

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

8.png

2. Não há restrição quanto ao nome da linha, apenas a quantidade do nome da coluna e os dados do item_name são filtrados

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

9.png

3. Não há restrição para nomes de coluna, apenas dados com nomes de linha 5 e 6 são filtrados

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

10.png

4. Filtros de aplicativos abrangentes: duas colunas de dados cujo nome da linha pode ser divisível por 8 e os nomes das colunas item_price e item_name

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

14.png

6, método data.iloc para filtrar dados

A ideia dos métodos data.iloc e data.loc só podem ser selecionados com base em valores de índice, não nomes de coluna e nomes de linha como condições de filtro

1. Filtre os dados nas linhas 5-8 e colunas 2-3

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

11.png

2. Filtre os dados nas linhas 2-4;

chipo.iloc[1:4,:]

12.png

3. Filtre as duas primeiras colunas de dados:

chipo.iloc[:,:2]

13.png

A descrição acima é todo o conteúdo deste artigo. Amigos que não estão familiarizados com a aplicação de alguns dos métodos nele, lembre-se de seguir o código e digitá-lo novamente para aprofundar seu entendimento!

Acho que você gosta

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