查看原文
其他

5个你或许不知道的pandas数据导入技巧

Ashford 大邓和他的Python
2024-09-09

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

如果您以前曾在 Python 中使用过 Pandas,您就会知道可以通过多种不同的方式导入表格数据。

Pandas 可能是使用最广泛的用于加载、操作和导出数据的 Python 包之一。

虽然您可能熟悉使用 pandas 读取和写入数据的许多不同方法,但您可能没有意识到一些可能并不像您想象的那么明显的快捷方式/技巧。这可以使导入数据变得更加容易和快速。这篇博文仅探讨了其中的五种技术.


1. 从url导入csv

您可能非常熟悉 pd.read_csv() 方法可以导入csv文件的, 其实ta还可以通过 HTTP 从 URL 读取数据。

网络访问 CSV 文件,而不是在本地存储所有文件, 可以省去手动下载内容的麻烦。

import pandas as pd

url = 'csv文件的网络连接'
df = pd.read_csv(url)

2. 导入html网页中的表格

如果您曾经阅读过 pandas 文档,您可能会遇到 pd.read_html() 方法。与 pd.read_csv() 非常相似,它也具有从 URL 导出数据的附加功能。让这更酷的是,您可以提供一个包含许多表格的网站的 URL,它会抓取所有表格。

例如,考虑维基百科文章“英国经济”。这篇文章可以被抓取如下。

url = 'https://en.wikipedia.org/wiki/Economy_of_the_United_Kingdom'

df_tables = pd.read_html(url)

3. JSON规范化

有时,当您处理 JSON 数据时, JSON 内往往包含多层嵌套。对于要转换为表格数据的 JSON 对象,它们需要被展平(嵌套深度为 1)。

pandas 提供了一种使用 pd.json_normalize() 方法来执行此操作的方法。例如,考虑以下 JSON 对象(在 pandas 文档中用作示例)

data = [
    {
        "id"1,
        "name""Cole Volk",
        "fitness": {"height"130"weight"60},
    },
    {"name""Mark Reg""fitness": {"height"130"weight"60}},
    {
        "id"2,
        "name""Faye Raker",
        "fitness": {"height"130"weight"60},
    },
]

data

Run

[{'id': 1, 'name': 'Cole Volk', 'fitness': {'height': 130, 'weight': 60}},
{'name': 'Mark Reg', 'fitness': {'height': 130, 'weight': 60}},
{'id': 2, 'name': 'Faye Raker', 'fitness': {'height': 130, 'weight': 60}}]

data包含多层嵌套对象的属性(在本例中为“健身”)。使用 pd.json_normalize() 可以折叠成表格。

注意:可以添加可选参数 max_level 以指定要折叠的最大嵌套级别数。默认情况下,它将标准化所有级别。

df = pd.json_normalize(data)
df

Run


idnamefitness.heightfitness.weight
01.0Cole Volk13060
1NaNMark Reg13060
22.0Faye Raker13060

4. 从剪贴板导入

pd.read_clipboard() 方法可用于捕获存储在剪贴板上的任何数据。

默认情况下,此方法接受正则表达式 \s+ 作为分隔值的分隔符。或者,您可以使用自己的正则表达式。

df = pd.read_clipboard(sep='\\s+')

5. 从Excel导入

假设有人向您发送了一些存储在 excel 电子表格中的数据,可以使用 pd.read_excel() 方法读取数据,就好像它是一个简单的 CSV 文件一样。

要记住的一件事是,电子表格软件允许用户使用单个文件中的工作表来分割多个电子表格。使用 sheet_name 参数可以实现从 特定工作表 访问数据。

df = pd.read_excel('my_spreadsheet.xlsx', sheet_name='Sheet 1')


精选文章

管理世界 | 使用文本分析词构建并测量短视主义

管理世界 | 使用 经营讨论与分析 测量 企业数字化指标

支持开票 | Python实证指标构建与文本分析

转载 | 社会计算驱动的社会科学研究方法

推荐 | 社科(经管)文本分析快速指南

视频分享 | 文本分析在经管研究中的应用

转载 | 金融学文本大数据挖掘方法与研究进展

文本分析 | MD&A信息含量指标构建代码实现

转载 | 大数据驱动的「社会经济地位」分析研究综述

FinBERT | 金融文本BERT模型,可情感分析、识别ESG和FLS类型

JM2022综述 | 黄金领域: 为营销研究(新洞察)采集网络数据

可视化 | 绘制《三体》人物关系网络图

长期征稿 | 欢迎各位前来投稿

17G数据集 | 深交所企业社会责任报告

70G数据集 | 上市公司定期报告数据集

27G数据集 | 使用Python对27G招股说明书进行文本分析

数据集 | 585w企业工商注册信息

数据集 | 90w条中国上市公司高管数据

可视化 | 绘制《三体》人物关系网络图

MS | 使用网络算法识别创新的颠覆性与否

认知的测量 | 向量距离vs语义投影

Asent库 | 英文文本数据情感分析

PNAS | 文本网络分析&文化桥梁Python代码实现

PNAS | 使用语义距离测量一个人的创新力(发散思维)得分

tomotopy | 速度最快的LDA主题模型

100min视频 | Python文本分析与会计

安装python包出现报错:Microsoft Visual 14.0 or greater is required. 怎么办?

如何正确读入文本数据不乱码(解决文本乱码问题)

Faker库 | 生成实验数据


继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存