【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爬虫之爬取2020女团选秀数据

    本文将详细讲解如何使用Python爬虫爬取2020女团选秀数据的完整攻略,包括数据分析和可视化。我们将使用Python的requests、BeautifulSoup、pandas和matplotlib等库来实现这个任务。 爬取数据 首先,我们需要从网站上爬取2020女团选秀的数据。我们可以使用Python的requests和BeautifulSoup库来实现…

    python 2023年5月15日
    00
  • 详解Python 将Web服务定义为函数

    将Web服务定义为函数是一种简单的方式来创建轻量级Web应用程序。在Python中,可以使用Flask框架来实现这一目的。以下是一些步骤来实现它: 安装Flask 在命令行中输入以下命令来安装Flask pip install flask 创建一个Flask应用程序 创建一个名为app.py的Python脚本,导入Flask模块并创建一个Flask应用程序 …

    python-answer 2023年3月25日
    00
  • 浅谈编码,解码,乱码的问题

    浅谈编码、解码、乱码的问题 在进行数据传输和存储时,我们经常会遇到编码、解码和乱码的问题。以下是一些解释和示例,帮助您更好地理解这些问题。 编码 编码是将字符转换为比特序列的过程。在计算机中,字符通常被转换为 Unicode 码点,然后根据编码规则(如 UTF-8、UTF-16、GBK、Big5 等)将其编码为比特序列。UTF-8 是使用最广泛的编码方式之一…

    python 2023年5月20日
    00
  • 实现Python3数组旋转的3种算法实例

    以下是关于“实现Python3数组旋转的3种算法实例”的完整攻略: 简介 数组旋转是一种常见的操作,它可以将数组中的元素按照一定的规则进行旋转。本教程将介绍三种不同的算法,用Python3实现数组旋转,并提供两个示例。 算法1:暴力法 暴力法是一种简单的算法,它通过多次旋转单个元素来实现数组旋转。具体来说,我们可以使用两个嵌套的循环,将数组中的每个元素旋转k…

    python 2023年5月14日
    00
  • Python中re模块常用方法总结分析

    下面是详细的攻略: Python中re模块常用方法总结分析 在Python中,re模块是用于正则表达式操作的模块。它提供了一系列函数,用于进行字符串的匹配、替换、分割等操作。本文将总结分析Python中re模块的常用方法,并提供两个示例说明。 re模块常用函数 在Python中,re模块提供了一系列函数,用于进行正则表达式操作。下面是re模块常用函数的介绍:…

    python 2023年5月14日
    00
  • 基于PyQt5制作一个windows通知管理器

    下面是制作一个Windows通知管理器的完整攻略,包含以下步骤: 步骤一:安装并学习PyQt5 PyQt5是基于Python的GUI框架,用于创建跨平台的应用程序。首先需要安装PyQt5,可以使用pip工具来安装: pip install PyQt5 然后需要学习PyQt5的基础知识,包括信号与槽、控件、布局等。 步骤二:创建主界面 首先需要创建一个主界面,…

    python 2023年6月3日
    00
  • Pandas如何将表格的前几行生成html实战案例

    在Pandas中,可以使用to_html()方法将DataFrame对象转换为HTML表格。以下是Pandas如何将表格的前几行生成HTML实战案例的详细攻略: 将DataFrame对象的前几行生成HTML表格 要将DataFrame对象的前几行生成HTML表格,可以使用head()方法获取前几行数据,然后使用to_html()方法将数据转换为HTML表格。…

    python 2023年5月14日
    00
  • Linux下安装PocketSphinx

    下面是安装PocketSphinx的完整攻略: 1. 安装依赖软件包 在安装PocketSphinx之前,我们需要安装一些依赖软件包,包括cmake、autoconf、libtool、bison、swig等。在终端(Terminal)中输入如下命令即可: sudo apt-get install cmake autoconf libtool bison sw…

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