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 数据我们看下面的例子 通过 有时候我们在处理 JSON 数据的时候,会发现 JSON 数据通常都是嵌套好多层 如果我们想要将 JSON 数据转换成表格数据,使其扁平化,我们可以用下面的方法来实现 看下面的例子 结果如下 接下来,让我们尝试读取更复杂的 JSON 数据,该数据嵌套了列表和字典 结果如下 pandas 的 假设你将数据从网上要复制粘贴到本地,那么用 pandas 的 默认情况下采取正则表达式 参考文章:https://jrashford.com/2022/08/02/loading-data-into-pandas-5-tips-and-tricks-you-may-or-may-not-know/ 关键词:
Copyright 2015-2022 北方家具网 版权所有 备案号:京ICP备2021034106号-50 联系邮箱: 55 16 53 8@qq.compandas.read_html()
用于获取 HTML 文件中的 table 数据(即标签的表格数据)
import pandas as pdurl = "http://weather.sina.com.cn/china/shanghaishi/"df_tables = pd.read_html(url)print(df_tables)
pandas.read_html()
可以实现简易爬虫pandas.json_normalize()
impor pandas as pddata =[ { "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 likes0 A001 咸鱼运维杂谈 https://www.cnblogs.com/edisonfish/ 611 A002 Google www.google.com 1242 A003 淘宝 www.taobao.com 45
import pandas as pddata ={ "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.tel0 A001 Tom 60 ... Year 1 John Kasich 1234567891 A002 James 89 ... Year 1 John Kasich 1234567892 A003 Jenny 79 ... Year 1 John Kasich 123456789[3 rows x 8 columns]
read_clipboard()
方法可以获取存储在剪贴板上的任何数据read_clipboard()
方法可以直接读取剪贴板的内容\s+
作为分隔值的分隔符(即匹配一个或多个空格、制表符、换行符等空白字符作为分隔符),然后将剪贴板上的数据分割成表格数据import pandas as pddf = pd.read_clipboard()print(df)
为你推荐