Pandas 加载数据的方法和技巧

简介: Pandas 加载数据的方法和技巧

哈喽大家好,我是咸鱼

相信小伙伴们在学习 python 数据分析的过程中或多或少都会听说或者使用过 pandas

pandas 是 python 的一个拓展库,常用于数据分析

今天咸鱼将介绍几个关于 pandas 导入数据的方法和技巧

从 URL 获取 csv 数据

关于 pandas 导入 csv 数据,使用的是下面这个方法

pandas.read_csv()

但是这个方法可以通过 HTTP 从 URL 来获取 CSV 数据

关于通过 HTTP 从 URL 来获取 CSV 数据,我在之前的文章《为什么访问同一个网址却返回不同的内容》有介绍过

例如下面的例子将展示如何通过 URL 获取 csv 文件
image-20230517153907583.png

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

df = pandas.read_csv(url)

通过 URL 来获取 CSV 数据,可以省去了需要先将 CSV 文件保存在本地这一步骤

从网站获取 HTML table 数据

pandas.read_html() 用于获取 HTML 文件中的 table 数据(即<table>标签的表格数据)

我们看下面的例子

import pandas as pd

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

image-20230517155021271.png
通过 pandas.read_html() 可以实现简易爬虫

JSON 数据格式化

有时候我们在处理 JSON 数据的时候,会发现 JSON 数据通常都是嵌套好多层

如果我们想要将 JSON 数据转换成表格数据,使其扁平化,我们可以用下面的方法来实现

pandas.json_normalize()

看下面的例子

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)

结果如下

     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

接下来,让我们尝试读取更复杂的 JSON 数据,该数据嵌套了列表和字典

import pandas as pd

data ={
   
   
    "school_name": "local primary school",
    "class": "Year 1",
    "info": {
   
   
      "president": "John Kasich",
      "address": "ABC road, London, UK",
      "contacts": {
   
   
        "email": "admin@e.com",
        "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)

结果如下

     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]

从剪贴板获取数据

pandas 的 read_clipboard() 方法可以获取存储在剪贴板上的任何数据

假设你将数据从网上要复制粘贴到本地,那么用 pandas 的 read_clipboard() 方法可以直接读取剪贴板的内容

默认情况下采取正则表达式\s+ 作为分隔值的分隔符(即匹配一个或多个空格、制表符、换行符等空白字符作为分隔符),然后将剪贴板上的数据分割成表格数据

import pandas as pd

df = pd.read_clipboard()

print(df)

参考文章:https://jrashford.com/2022/08/02/loading-data-into-pandas-5-tips-and-tricks-you-may-or-may-not-know/

相关文章
|
3月前
|
数据采集 机器学习/深度学习 Python
【机器学习】数据清洗——基于Pandas库的方法删除重复点
【机器学习】数据清洗——基于Pandas库的方法删除重复点
208 1
|
3月前
|
人工智能 安全 数据挖掘
Pandas AI:Pandas与人工智能的结合,让你不再拘泥于如何使用pandas方法及处理语法
Pandas AI:Pandas与人工智能的结合,让你不再拘泥于如何使用pandas方法及处理语法
182 1
|
3月前
|
数据挖掘 索引 Python
在Pandas中通过时间频率来汇总数据的三种常用方法
在Pandas中通过时间频率来汇总数据的三种常用方法
93 0
|
3月前
|
SQL 索引 Python
Pandas Query 方法深度总结
Pandas Query 方法深度总结
|
11月前
|
机器学习/深度学习 算法 物联网
时间序列的重采样和pandas的resample方法介绍
重采样是时间序列分析中处理时序数据的一项基本技术。它是关于将时间序列数据从一个频率转换到另一个频率,它可以更改数据的时间间隔,通过上采样增加粒度,或通过下采样减少粒度。在本文中,我们将深入研究Pandas中重新采样的关键问题。
109 1
|
3月前
|
Python
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序
【5月更文挑战第2天】使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序。示例代码展示了如何按'Name'和'Age'列排序 DataFrame。先按'Name'排序,再按'Age'排序。sort_values()的by参数接受列名列表,ascending参数控制排序顺序(默认升序),inplace参数决定是否直接修改原DataFrame。
82 1
|
3月前
|
数据可视化 数据挖掘 C++
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
|
3月前
|
数据处理 Python
使用Pandas解决问题:对比两列数据取最大值的五种方法
​在数据处理和分析中,经常需要比较两个或多个列的值,并取其中的最大值。Pandas库作为Python中数据处理和分析的强大工具,提供了多种灵活的方法来实现这一需求。本文将详细介绍五种使用Pandas对比两列数据并取最大值的方法,通过代码示例和案例分析,帮助新手更好地理解并掌握这些技巧。
76 0
|
3月前
|
存储 数据可视化 数据挖掘
Pandas 28种常用方法使用总结(下)
Pandas 28种常用方法使用总结