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/
Pandas 加载数据的方法和技巧的更多相关文章
- python重要第三方库pandas加载数据(详解)
Pandas数据加载 关注公众号"轻松学编程"了解更多. pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,其中read_csv和read_table这两个 ...
- springboot-15-启动时加载数据的方法CommandLineRunner
有时需要爱项目启动时, 去加载一些配置文件什么的, 可以使用监听器的方式加载, 这是可以通过实现接口 CommandLineRunner来实现需求: Spring Boot应用程序在启动后,会遍历Co ...
- pytorch加载数据的方法-没弄,打算弄
参考:https://www.jianshu.com/p/aee6a3d72014 # 网络,netg为生成器,netd为判别器 netg, netd = NetG(opt), NetD(opt) # ...
- 使用Pandas加载数据
1.dataframe对象简述: dataframe为pandas中一种有行列索引的二维数据结构,可以看成在普通二维结构上加上行列id标记 示例为创建一个2X3的dataframe: import s ...
- Ajax 加载数据 练习 自我有些迷糊了,写的大概请谅解 ^ _ ^
查询表的显示,查询显示如果不嵌入PHP代码的话,用ajax怎么实现? <h1>显示数据</h1> <table width="100%" bord ...
- Ajax页面的加载数据与删除
1.数据库找一张表: 颜色表2.主页面主页面的代码用到tbody:TBODY作用是:可以控制表格分行下载,从而提高下载速度.(网页的打开是先表格的的内容全部下载完毕后,才显示出来,分行下载可以先显示部 ...
- AJAX删除事件与加载数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- android Viewpager取消预加载及Fragment方法的学习
1.在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载.通过设置setOffscreenPageLimit(int numbe ...
- smarty中增加类似foreach的功能自动加载数据方法
第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 复制代码 代码如下: //加载数据的开始标签case 'load': $this->_push ...
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
随机推荐
- 设计师必备:免费素材管理工具Billfish v3.0更新了!
Billfish是专门为设计师打造的图片收藏管理工具,可以轻松管理您的各种素材文件.Billfish是一个免费的软件,支持对大量的图片素材进行管理,提供多种快速的检索筛选功能,如颜色,格式,方向, ...
- SpringBoot---起步依赖starter
1.简化spring应用的初始搭建和开发过程. springboot程序优点:自动配置.起步依赖(简化依赖配置).辅助功能(内置服务器...) <?xml version="1.0&q ...
- java选择结构-if
java选择结构-if if单选泽结构 if双选择结构 if多选择结构 if嵌套结构 package charpter2; import com.sun.xml.internal.ws.address ...
- Error:(x,x) java: 程序包com.xxx.xxx不存在
[问题描述]:项目为SpringBoot 项目多个 module依赖,对子模块进行 compile/install 时出现了依赖的类(此类是自己写的类)不存在.
- 为什么HashMap查找比List快很多?
做两数之和这道题目时,引发了一个思考: 为什么两者运行时间相差如此之大???好残忍,我List比你HashMap到底差在哪**** 于是我一顿查资料.... 战犯哈希算法登场 哈希算法会根据你要存入的 ...
- 手动实现一个call bind
一.call的实现(apply类似) //完成版 Function.prototype.setCall = function (obj){ var object = obj || window let ...
- 使用msf生成shellcode并用Go免杀?
msf生成的裸马现在已经不行了,加壳也只能加冷门壳了,VMP,Shielden,upx不是失效就是效果很差,所以当下,得用shellcode来免杀了 msfvenom -a x86 --platfor ...
- IOC创建对象方式
IOC创建对象方式 User 类 public class User { private String name; public User(String name) { ...
- flask+gunicorn+nginx部署pytorch/python应用
1. 基于flask实现python服务Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 ...
- [Linux]常用命令之【source|export/env】#点命令/环境变量#
1 source 1-1 source 命令概述 source命令用法:source FileName 简述 source命令(从 C Shell 而来)是bash shell的内置命令. sourc ...