Análisis de datos de Pandas desde la entrada hasta el abandono: código + combate real, ¡9 minutos para llevarte a abrir la puerta de Pandas! ! !

Hoy resuelto usando el método Pandas; ¡
debería estar terminando toda la red el artículo más completo, conciso y fácil de leer ( Li todo )! !
Um ... no lo creas, es verdad ~ ~

¡Sigue a Xiaoyu y te llevará a abrir la puerta de Pandas en 9 minutos ! !
¡Desde entonces se embarcó en el duro camino de los analistas de datos! !

1. Definición básica de pandas

・ En el análisis de datos, Pandas se usa con mucha frecuencia.
・ Se puede decir que Pandas es un conjunto de herramientas basado en NumPy que contiene estructuras de datos más avanzadas y capacidades analíticas.
・ Series y DataFrame son dos estructuras de datos centrales, que representan una secuencia unidimensional y Estructura de tabla bidimensional
. Según estas dos estructuras de datos, Pandas puede importar, limpiar, procesar, contar y generar datos

2. Cómo usar Pandas

2.1 Serie

· La serie es una secuencia de longitud fija de los diccionarios.
· Cuando se almacena, el equivalente de dos ndarry, que es la mayor diferencia entre la estructura y el diccionario. Debido a la estructura del diccionario, el número de elementos no es fijo.
Dos atributos básicos de Series:
①index
②values
Para un ejemplo, echemos un vistazo al uso de Series :

# -*- coding: utf-8 -*-

"""
@ auth : carl_DJ
@ time : 2020-8-28
"""


from pandas import Series,DataFrame

x1 = Series([1,2,3,4])
x2 = Series(data=[1,2,3,4],index=['a','b','c','d'])
#使用字典来创建
d = {
    
    'a':1,'b':2,'c':3,'d':4}
x3=Series(d)
print(f'x1打印的结果是:{x1}' )
print('='*20)
print(f'x2打印的结果是:{x2}')
print('='*20)
print(f'x3打印的结果是:{x3}')

Los resultados son los siguientes:

Inserte la descripción de la imagen aquí

2.2 Uso de DataFrame

・ Similar a las tablas de bases de datos, incluido el índice de fila y el índice de columna, DataFrame puede considerarse como un tipo de diccionario compuesto por Series con el mismo índice

Damos un ejemplo:

# -*- coding: utf-8 -*-

"""
@ auth : carl_DJ
@ time : 2020-8-28
"""

from pandas import DataFrame
data = {
    
    
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df1 = DataFrame(data)
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )

print(f'df1打印的结果是:\n{df1}')
print('='*30)
print(f'df2打印的结果是:\n{df2}')

Mira el efecto

Inserte la descripción de la imagen aquí

2.2.1 Eliminar operación

Eliminar filas y columnas de
demostración de ejemplo de DataFrame

#删除行
df2 = df2.drop(columns=['English'])
#删列
df2 = df2.drop(index=['张三'])

resultado de la operación
Inserte la descripción de la imagen aquí

2.2.2 Operación de deduplicación

Eliminar valores duplicados

#去掉重复的值
df1 = df1.drop_duplicates()

2.2.3 Operación de cambio de formato de datos

Cambiar formato de datos

#更改数据格式
df2['Chinese'].astype('str')
df2['Chinese'].astype(np.int64)

2.2.4 Eliminar espacios entre operaciones de datos

Eliminar espacios entre datos

#删除数据左右两边的空格
df2['Chinese'] = df2['Chinese'].map(str.split)

2.2.5 Operación de conversión de casos

Todo en mayúsculas

#全部大写转换
df2.columns = df2.columns.str.upper()

Todo en minúsculas

#全部小写转换
df2.columns = df2.columns.str.lower()

Ponga en mayúscula la primera letra

#首字母大写
df2.columns = df2.columns.str.title()

2.2.6 Limpieza de datos

Usar aplicar para limpiar la
aplicación de datos es una función con un alto grado de libertad en Pandas y se usa con mucha frecuencia.
Por ejemplo:
columna numérica Conversión de casos matemáticos

#对Math列进行大小写转换
df2['Math'] = df2['Math'].apply(str.upper)

②Defina la función y utilícela en aplicar

#定义函数,在apply中使用
def par_df(par):
    return par*2

df1['Chinese'] = df1['Chinese'].apply(par_df)

2.3 Funciones estadísticas en Pandas

2.3.1 Uso de estadísticas de datos básicas

Count () cuenta el número, el valor nulo NaN no se calcula
describe () genera varios indicadores estadísticos a la vez, incluidos: count, media, std, min, max, etc.
min () valor mínimo
max () valor máximo
suma () suma
· mediana () mediana
· var () varianza
· STD () desviación estándar
· argmin () posiciones de índice mínimo estadístico
· argmax () la posición del conteo de índice máximo
· idxmin () mínimo estadístico Valor de índice
idxmax () El valor de índice que cuenta el valor máximo

2.3.2 Uso del enlace de función

Conexión interior

#内连接
df3 = pd.merge(df1, df2, how='inner')

Conexión exterior

#外连接
df3 = pd.merge(df1, df2, how='outer')

Conexión correcta

#内连接
df3 = pd.merge(df1, df2, how='right')

Conexión izquierda

#内连接
df3 = pd.merge(df1, df2, how='left')

2.3.3 Uso de la función loc y la función iloc

función loc: obtiene los datos de la fila por el valor específico en el índice de la fila "Índice" (como tomar la fila con "Índice" como "A")
• función iloc: obtiene los datos de la fila por el número de fila (como tomar los datos de la segunda fila) )

Reglas antiguas, ejemplos de líneas de extracción de código
:

# -*- coding: utf-8 -*-

"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
    
    
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )

#提取index为'张三'的行
print(f"loc函数提取index为'张三'的行的内容:\n {df2.loc[u'张三']}")
print("="*30)
#提取第1行内容
print(f"iloc函数提取第1行的内容:\n {df2.iloc[1]}")

resultado de la operación

Inserte la descripción de la imagen aquí

Ejemplos de extracción de columnas:

# -*- coding: utf-8 -*-

"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
    
    
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )

#提取列为Englis的所有内容
#使用loc函数获取分数
print(f"loc函数提取列为Englis的所有内容:\n {df2.loc[:,['English']]}")

print("="*30)

#提取第2列的所有内容
#使用iloc函数获取分数
print(f"iloc函数提取第2列的所有内容:\n {df2.iloc[:,2]}")

resultado de la operación

Inserte la descripción de la imagen aquí

Extraiga varios datos en columnas y filas:

# -*- coding: utf-8 -*-

"""
@ auth : carl_DJ
@ time : 2020-8-28
"""

from pandas import DataFrame
data = {
    
    
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['zhangsan','lisi','wangwu','zhaoliu','jiaqi'],
            columns=['Chinese','Math','English']
                )
#使用loc函数获取分数
loc_soc = df2.loc[['zhangsan','zhaoliu'],['Chinese','English']]
print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{loc_sco}')

#使用iloc函数获取分数
iloc_sco = df2.iloc[[0,3],[0,2]]
print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{iloc_sco}')

resultado de la operación
Inserte la descripción de la imagen aquí

2.4 Agrupación de datos

Agrupar por uso

import numpy as np
import pandas as pd

#读取数据csv文件,采用gbk编码格式
data = pd.read_csv('data_info.csv',encoding='gbk')
result = data.groupby('sex').age([np.sum,np.mean])
#打印结果
print(f'结果内容显示为:\n{result}')

2.5 Clasificación de datos

Función de clasificación sort_values ​​()

#对A11列从大到小进行排序
df.sort_values('A11', ascending=False)

Restauración de índice reset_index ()

'''
reset_index():可以还原索引,重新变为默认的整型索引
inplace = True:不创建新的对象,直接对原始对象进行修改
'''
df.reset_index(inplace=True)

Nota:
El método sort_values ​​aquí es similar al orden por uso en SQL.

2.6 Leer y escribir archivos

Leer archivo csv

#读取csv文件
pd.read_csv('file_name')

Escribir en archivo csv

#写入csv文件,不保存index
pd.to_csv('file_name',index=False)

2.7 Combinar dos marcos de datos

Use fusionar para fusionar Dataframe por índice

#合并两个Dataframe
df2 = df.merge(df2,left_index=True,right_index=True,how='left')

3. Código de combate real de Pandas y referencias

Código de combate real de Pandas:
"Pandas 5 líneas de código para lograr operaciones de lectura y escritura para sobresalir"
"Python3, los pandas procesan automáticamente los datos exclce y el correo de yagmail envía automáticamente"

Materiales de referencia sobre pandas:
" Red china de pandas "

Supongo que te gusta

Origin blog.csdn.net/wuyoudeyuer/article/details/108274818
Recomendado
Clasificación