Pandas 加载数据的方法和技巧

news2024/11/25 15:24:19

Pandas 加载数据的方法和技巧

哈喽大家好,我是咸鱼

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

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

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

从 URL 获取 csv 数据

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

pandas.read_csv()

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

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

例如下面的例子将展示如何通过 URL 获取 csv 文件
在这里插入图片描述

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)

在这里插入图片描述
通过 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaSE】Java基础语法(三十一):可变参数

文章目录 1. 可变参数2. 创建不可变集合 1. 可变参数 可变参数介绍 可变参数又称参数个数可变&#xff0c;用作方法的形参出现&#xff0c;那么方法参数个数就是可变的了方法的参数类型已经确定,个数不确定,我们可以使用可变参数 可变参数定义格式修饰符 返回值类型 方法名(数…

【独立版】智慧城市同城V4_2.2.7全开源全插件VUE版,修复房产信息组件商户发布二手房房源信息未和商户关联的问题

源码介绍 【独立版】智慧城市同城V4 查看更多关于 智慧城市同城V4 的文章 _2.2.7全开源全插件VUE版&#xff0c;修复房产信息组件商户发布二手房房源信息未和商户关联的问题&#xff01; 智慧城市同城是一套专注于多城市生活服务同城技术解决方案,全面覆盖同堿信息、商家联盟、…

端口扫描工具-Nmap

Nmap是一款功能强大&#xff0c;功能丰富的网络扫描工具&#xff0c;对于网络管理员和安全专业人员来说&#xff0c;是一个非常有用的工具&#xff0c;并且被广泛应用于安全审计、网络调查、漏洞搜寻等领域。 &#xff08;能扫描主机的端口&#xff0c;查看端口是否开放&#x…

智慧物流货运系统源码,网络货运平台系统源码,货运系统开发源码部署

一套结合货主、平台、实际承运人多方业务场景&#xff0c;构建人、车、货、企一体的标准化网络货运平台系统源码。 文末获取联系 平台服务于货主与司机&#xff0c;进行服务对接&#xff0c;为货主节省时间找车&#xff0c;为司机找货获得利润。 货主端&#xff1a;货车主在线发…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

室内外大型商演、体育赛事观赏防雷指南

前言 随着社会的发展&#xff0c;人民生活水平的提高&#xff0c;生活方式的改变&#xff0c;户外颇具规模的各种集会、商演、大型文体及体育活动等举办频次越来越频繁&#xff0c;持续时间越来越长&#xff0c;有的集会持续数天甚至十几天&#xff0c;因此需要采取全方位的防…

DUMPBIN查看dll函数定义 及MFC常用 生成一个C# C++等任意语言都能调用的dll

DUMPBIN /EXPORTS "C:\Windows\System32\uxtheme.dll" /EXPORTS 导出的所有定义。(这里的定义应该就是指的函数名吧) dumpbin.exe是微软二进制文件转储器。显示有关通用对象文件格式 (COFF) 的二进制文件的信息。 可以使用 DUMPBIN 检查 COFF 对象文件、 COFF 对象、…

2023年上半年系统集成项目管理工程师上午真题及答案解析

1.在( )领域我国远末达到世界先进水平&#xff0c;需要发挥新型国家体制优势&#xff0c;集中政府和市场两方面的力量全力发展。 A.卫星导航 B.航天 C.集成电路 D.高铁 2.ChatGPT 于2022年11月30日发布&#xff0c;他是人工智能驱动( )。 …

NFTScan | 05.22~05.28 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.05.22 ~ 2023.05.28 NFT Hot News&#xff1a;NFT 热点资讯 01/ 数据&#xff1a;24 小时内两巨鲸共抛售 349 枚 MAYC NFT 5 月 22 日&#xff0c;Debank 数据显示&#xff0c;近 …

如何将数据从旧电脑传输到新电脑,哪种文件传输方式更好

迁移到新的Windows 10 电脑是一个令人兴奋的时刻&#xff0c;尤其是如果您有幸从我们现在可用的最佳Windows笔记本电脑列表中选择一个选项。问题是您熟悉的文件位于旧电脑上&#xff0c;并且您不想重新开始。为了简化电脑之间的转换&#xff0c;可以使用以下七种方式进行文件传…

Top大学教授:青年学者,请避免这些写作问题→

在科研初期&#xff0c;很多作者由于缺乏经验和指导&#xff0c;糊里糊涂地发了一些质量较低的论文。 为了帮助青年科学家提高写作能力&#xff0c;比利时鲁汶大学的Blocken教授&#xff08;同时也是Building & Environment、Journal of Wind Engineering & Industrial…

Linux第三天

man手册一般用于工具 比如nmap lsblk :查看光盘内容 //说明还没被挂载 //在 /etc/fstab vim中进行开机挂载 yum repolist -v //查看软件安装的历史列表

【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner​

简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 方法一 有源码…

Linux Shell 半自动方式部署单机Oracle 21C

oracle前言 Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财富排行榜上的前1000家公司所采用&#xff0c;许多大型网站也选用了Oracle系统&#xff0c;是世界最好的数据库产品。此外&#xff0c;Oracle公司还开发其他应用程序和软件。同时&#…

洗地机如何选购?洗地机十大名牌排行榜

洗地机是今年地面清洁领域热门的品类&#xff0c;如果你每天都要打扫家庭卫生的话&#xff0c;家里还有小孩子和有养宠物的话&#xff0c;如果你经常做饭&#xff0c;需要经常清洁厨房地面的话&#xff0c;那么你一定一定要配备一台洗地机在家里&#xff0c;它的高清洁力和便捷…

创新微MinewSemi厘米级定位精度的GNSS 模块—MS32SN4

近日&#xff0c;中国无线连接解决方案提供商MinewSemi推出了其GNSS模块系列-MS32SN4。MinewSemi表示&#xff0c;这些嵌入式模块为产品提供了一种易于使用、具有成本效益的解决方案&#xff0c;支持物联网&#xff08;IoT&#xff09;应用。 集成天线模块适用于消费者解决方案…

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑(官方手册有误)

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑&#xff08;官方手册有误&#xff09; 毫米波雷达有两种烧录方式&#xff1a; 搭配ICBOOST烧录雷达板自己烧录 搭配ICBOOST烧录时 需要配置为 MMWAVEICBOOST 模式 SOP都是下拉 而后通过 MMWAVEICBOOST 上的SO…

数据库基础——9.聚合函数

这篇文章来讲一下数据库中的聚合函数 目录 1. 聚合函数介绍 1.1 AVG和SUM函数 1.2 MIN和MAX函数 1.3 COUNT函数 2. GROUP BY 2.1 基本使用 2.2 使用多个列分组 2.3 GROUP BY中使用WITH ROLLUP 3. HAVING 3.1 基本使用 3.2 WHERE和HAVING的对比 4. SELECT的执…

Bugku CTF 矛盾 网站被黑

矛盾 打开链接&#xff0c;代码审计 使用get方式给num传参&#xff1b; 如果传入的不是数字&#xff0c;则会原样输出&#xff0c;比如我们传入abc 晃眼一看传入num等于1就可以输出flag&#xff0c;发现并不行 如果输入 注意&#xff0c;这里是两个等号 在php中&#xff0…

低代码会导致程序员失业吗?

低代码并不会导致程序员失业。低代码有价值&#xff0c;但请不要妖魔化。 虽然低代码开发&#xff0c;直到现在都没有清晰明确的定义&#xff0c;但低代码平台也不是先有定义再发展起来的事物。 低代码可以解决两个困扰已久的问题&#xff1a; 1、做开发&#xff0c;一定需要…