【pandas基础】–数据读取

数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。

pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。

1. 各类数据源

pandas提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。

1.1 从 CSV 文件读取数据

读取csv文件的接口:read_csv()

import pandas as pd

# 此csv中包含一些中国人口的统计信息
df = pd.read_csv("/path/to/china-population.csv")

df.head() # 显示前5条数据

image.png

1.2 从 excel 文件读取数据

读取excel文件的接口:read_excel ()
读取excel文件时,默认读取第一个sheet中的数据。

import pandas as pd

# 此excel中的数据与上面csv文件中的一样
df = pd.read_excel("/path/to/china-population.xlsx")

df.head() # 显示前5条数据

image.png

1.3 从网络中读取数据

除了从本地文件中读取数据之外,read_csvread_excel也可以直接从URL读取数据。
比如,上面的csv文件和excel文件可以从下面的地址下载。
http://databook.top:8888/pandas/china-population.csv
http://databook.top:8888/pandas/china-population.xlsx

可以直接将URL传给 read_csvread_excel,不用下载保存本地。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population.csv")
df_excel = pd.read_excel("http://databook.top:8888/pandas/china-population.xlsx")

2. 不同分隔符

csv 文件中默认用逗号,分隔不同的字段,不过,也有很多csv文件不用逗号分隔,用其他生僻的符号来分隔。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population-sep.csv")
df.head()

image.png
文件china-population-sep.csv|来分隔不同的字段,直接读取的话,变成只有一个字段。

这时,要明确设置分隔符。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population-sep.csv", sep="|")
df.head()

image.png
这样就得到了正确的数据结构。

3. 设置列名称

除了可以设置分隔符之外,读取数据时,也可以设置列的名称。
上面的例子中,列的名称都是字母的缩写,读取文件时可以替换成中文名称。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数"],
)
df.head()

image.png

通过names参数设置列的名称,names参数是个列表,其中元素的个数一般与列的数目保持一致。
如果names中元素个数少于列的数目,那么多出来的列会作为索引(关于索引index,后续会详细介绍)。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["指标编码", "指标名称", "人口数"],
)
df.head()

image.png

如果 names中元素个数多于列的数目,多出来的元素作为新增的空白列。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数", "列名称", "列名称2"],
)
df.head()

image.png

上面的例子中,我们应该发现了一个问题,设置 names作为新的列名称之后,原有的列名称被当成了实际的数据。
也就是:
image.png

设置新的列名称时,如果数据中包含列名称的话,需要忽略掉这个名称。
设置 header=0,忽略作为标题的第一行。
如果文件本来就没有标题的话,设置 header=None

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    header=0,
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数"],
)
df.head()

image.png

4. 随机生成数据

pandas支持从很多数据源读取数据,不过,有时候我们只想尝试尝试 pandas中的一些方法,并不想创建数据源。

这时,可以通过 numpy包创建一个随机的二维矩阵,直接将这个二维矩阵的数据导入 pandas即可。
下面的例子创建了一个10行3列的数据集。

import pandas as pd
import numpy as np

data = np.random.rand(10,3)
df = pd.DataFrame(data, columns=["data1", "data2", "data3"])
df.head()

image.png

通过临时创建的随机数据,可以尝试 pandas提供的各类接口。

5. 总结回顾

本篇了主要介绍了数据的读取方法,重点介绍的是 csv 文件的读取方式,因为这是最常用的数据源。
其他数据源的读取方式也大同小异,各种数据源的差异会体现在不同接口的参数上。

本文所用到的数据:

  1. http://databook.top:8888/pandas/china-population.csv
  2. http://databook.top:8888/pandas/china-population-sep.csv
  3. http://databook.top:8888/pandas/china-population.xlsx

本文关联的微信视频号短视频:
pandas01-数据读取.png

原文链接:https://www.cnblogs.com/wang_yb/p/17371731.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【pandas基础】–数据读取 - Python技术站

(0)
上一篇 2023年5月4日
下一篇 2023年5月4日

相关文章

  • Python实现合成多张图片到PDF格式

    下面是Python实现合成多张图片到PDF格式的完整攻略,主要分为四个步骤: 步骤一:安装必要的Python库 在Python环境中,我们需要使用pillow、reportlab等库来实现将图片合成为PDF的功能。因此,我们需要先安装这些库。 pip install Pillow reportlab 步骤二:将多张图片合成为单张PDF 使用pillow库将多…

    python 2023年5月19日
    00
  • ndarray数组的转置(transpose)和轴对换方式

    ndarray数组的转置是指将数组的维度重新排列,而轴对换是指根据指定的维度进行转置操作。在NumPy中,可以通过transpose和swapaxes方法进行转置和轴对换操作。 转置操作 转置操作可以使用ndarray的transpose方法进行,该方法可以接受一个由对应维度索引组成的tuple作为参数。如果不指定参数,transpose方法默认对所有轴进行…

    python 2023年6月5日
    00
  • 将 LinearSVC 的决策函数转换为概率(Scikit learn python)

    【问题标题】:Converting LinearSVC’s decision function to probabilities (Scikit learn python )将 LinearSVC 的决策函数转换为概率(Scikit learn python) 【发布时间】:2023-04-07 13:40:01 【问题描述】: 我使用来自 scikit l…

    Python开发 2023年4月8日
    00
  • Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例

    在Python中,可以使用lxml模块解析HTML文档,并使用XPath语法获取页面内所有叶子节点的XPath路径。本文将详细讲解Python基于lxml模块解析HTML获取页面内所有叶子节点XPath路径的功能示例,包括两个示例。 示例一:获取页面内所有叶子节点XPath路径 以下是一个示例代码,演示如何使用lxml模块解析HTML文档,并使用XPath语…

    python 2023年5月15日
    00
  • 从CentOS安装完成到生成词云python的实例

    下面就为大家讲解如何从CentOS安装完成到生成词云python的实例。 安装Python CentOS自带的默认Python版本较低,需要我们手动安装一个新版本的Python。可以通过以下步骤安装Python: 安装编译所需软件包: sudo yum install -y wget gcc sqlite-devel zlib-devel openssl-d…

    python 2023年5月20日
    00
  • 基于Python实现评论区抽奖功能详解

    基于Python实现评论区抽奖功能详解 介绍 在网站中添加评论区抽奖功能,能够吸引用户互动,增加用户的粘性。通过Python实现评论区抽奖功能,还可以自动化地进行抽奖,进一步提升用户体验。 实现步骤 安装必要的Python库 在实现评论区抽奖功能之前,需要准备Python环境。具体地,需要安装Python 3.x版本,以及pandas、random等Pyth…

    python 2023年6月3日
    00
  • python互斥锁、加锁、同步机制、异步通信知识总结

    下面是关于“python互斥锁、加锁、同步机制、异步通信知识总结”的完整攻略,包括以下内容: 互斥锁 在多线程环境下,由于多个线程可能同时访问同一个资源,容易引起并发问题。而互斥锁就是一种同步机制,可以确保同时只有一个线程访问该资源。 Python提供了threading模块,可以使用Lock对象作为互斥锁。下面是一个简单示例: import threadi…

    python 2023年5月19日
    00
  • Python编程pydantic触发及访问错误处理

    在Python编程中,使用pydantic库进行数据验证和解析时,有时会遇到触发及访问错误处理的问题。本文将详细讲解如何解决这个问题。 解决方法 方法一:使用try-except语句 在Python编程中,我们可以使用try-except语句来捕获触发及访问错误处理的异常。以下是使用try-except语句的步骤: from pydantic import …

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部