Métodos y técnicas para cargar datos en Pandas

Métodos y técnicas para cargar datos en Pandas

Hola a todos, soy Xianyu

Creo que mis amigos habrán escuchado o usado pandas más o menos en el proceso de aprendizaje del análisis de datos de Python.

pandas es una biblioteca de extensión de python, a menudo utilizada para el análisis de datos

Hoy, Xianyu presentará varios métodos y técnicas para importar datos de pandas

Obtener datos csv de la URL

Con respecto a los pandas que importan datos csv, se utiliza el siguiente método

pandas.read_csv()

Pero este método puede obtener datos CSV de URL a través de HTTP

Sobre la obtención de datos CSV de URL a través de HTTP, lo introduje en el artículo anterior "¿Por qué visitar la misma URL pero devolver contenido diferente"?

Por ejemplo, el siguiente ejemplo mostrará cómo obtener el archivo csv a través de la URL
inserte la descripción de la imagen aquí

url = 'https://raw.githubusercontent.com/scikit-learn/scikit-learn/main/sklearn/datasets/data/boston_house_prices.csv'

df = pandas.read_csv(url)

Obtener datos CSV a través de la URL puede ahorrar el paso de guardar el archivo CSV localmente primero

Obtener datos de la tabla HTML del sitio web

pandas.read_html()Se utiliza para obtener los datos de la tabla en el archivo HTML (es decir, <table>los datos tabulares de la etiqueta)

Veamos el siguiente ejemplo

import pandas as pd

url = 'http://weather.sina.com.cn/china/shanghaishi/'
df_tables = pd.read_html(url)
print(df_tables)

inserte la descripción de la imagen aquí
pandas.read_html()Un rastreador simple puede ser realizado por

Formato de datos JSON

A veces, cuando procesamos datos JSON, encontramos que los datos JSON generalmente están anidados en varias capas

Si queremos convertir datos JSON en datos tabulares para hacerlos planos, podemos usar el siguiente método para lograrlo

pandas.json_normalize()

Vea el ejemplo a continuación

impor pandas as pd

data =[
    {
    
    
      "id": "A001",
      "name": "咸鱼运维杂谈",
      "url": "https://www.cnblogs.com/edisonfish/",
      "likes": 61
    },
    {
    
    
      "id": "A002",
      "name": "Google",
      "url": "www.google.com",
      "likes": 124
    },
    {
    
    
      "id": "A003",
      "name": "淘宝",
      "url": "www.taobao.com",
      "likes": 45
    }
  ]

df = pd.json_normalize(data)
print(df)

El resultado es el siguiente

     id    name      url                                    likes
0  A001  咸鱼运维杂谈  https://www.cnblogs.com/edisonfish/    61
1  A002  Google      www.google.com                         124
2  A003   淘宝        www.taobao.com                         45

A continuación, intentemos leer datos JSON más complejos, que tienen listas y diccionarios anidados.

import pandas as pd

data ={
    
    
    "school_name": "local primary school",
    "class": "Year 1",
    "info": {
    
    
      "president": "John Kasich",
      "address": "ABC road, London, UK",
      "contacts": {
    
    
        "email": "[email protected]",
        "tel": "123456789"
      }
    },
    "students": [
    {
    
    
        "id": "A001",
        "name": "Tom",
        "math": 60,
        "physics": 66,
        "chemistry": 61
    },
    {
    
    
        "id": "A002",
        "name": "James",
        "math": 89,
        "physics": 76,
        "chemistry": 51
    },
    {
    
    
        "id": "A003",
        "name": "Jenny",
        "math": 79,
        "physics": 90,
        "chemistry": 78
    }]
}


# 展平数据
df = pd.json_normalize(
    data,
    record_path =['students'],
    meta=[
        'class',
        ['info', 'president'],
        ['info', 'contacts', 'tel']
    ]
)
print(df)

El resultado es el siguiente

     id   name  math  ...   class  info.president info.contacts.tel
0  A001    Tom    60  ...  Year 1     John Kasich         123456789
1  A002  James    89  ...  Year 1     John Kasich         123456789
2  A003  Jenny    79  ...  Year 1     John Kasich         123456789

[3 rows x 8 columns]

obtener datos del portapapeles

El read_clipboard()método puede obtener cualquier dato almacenado en el portapapeles

Supongamos que desea copiar y pegar los datos de Internet en el local, luego puede leer directamente el contenido del portapapeles con read_clipboard()el método

De forma predeterminada, las expresiones regulares se usan \s+como delimitadores para separar valores (es decir, hacer coincidir uno o más caracteres en blanco, como espacios, tabuladores y líneas nuevas como delimitadores), y luego dividir los datos en el portapapeles en datos tabulares.

import pandas as pd

df = pd.read_clipboard()

print(df)

Artículo de referencia: https://jrashford.com/2022/08/02/loading-data-into-pandas-5-tips-and-tricks-you-may-or-may-not-know/

Supongo que te gusta

Origin blog.csdn.net/s_alted/article/details/130933362
Recomendado
Clasificación